Skip to content

Commit 1f7fce5

Browse files
committed
Wip update tests
1 parent 453dd70 commit 1f7fce5

File tree

2 files changed

+48
-10
lines changed

2 files changed

+48
-10
lines changed

src/qcodes/dataset/exporters/export_to_xarray.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -248,11 +248,10 @@ def load_to_xarray_dataset_dict(
248248
dataset, datadict, use_multi_index=use_multi_index
249249
)
250250

251-
for dataname, xr_dataset in xr_datasets.items():
252-
_add_param_spec_to_xarray_coords(dataset, xr_dataset[dataname])
253-
paramspec_dict = _paramspec_dict_with_extras(dataset, str(dataname))
254-
xr_dataset[dataname].attrs.update(paramspec_dict.items())
255-
_add_metadata_to_xarray(dataset, xr_dataset[dataname])
251+
for xr_dataset in xr_datasets.values():
252+
_add_param_spec_to_xarray_coords(dataset, xr_dataset)
253+
_add_param_spec_to_xarray_data_vars(dataset, xr_dataset)
254+
_add_metadata_to_xarray(dataset, xr_dataset)
256255

257256
return xr_datasets
258257

tests/dataset/test_dataset_export.py

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
from qcodes.dataset.exporters.export_to_xarray import _calculate_index_shape
4141
from qcodes.dataset.linked_datasets.links import links_to_str
4242
from qcodes.parameters import ManualParameter, Parameter
43+
from qcodes.utils.deprecate import QCoDeSDeprecationWarning
4344

4445
if TYPE_CHECKING:
4546
from collections.abc import Hashable
@@ -868,7 +869,17 @@ def test_export_to_xarray_dataset_empty_ds(mock_empty_dataset: DataSet) -> None:
868869

869870

870871
def test_export_to_xarray_dataarray_empty_ds(mock_empty_dataset: DataSet) -> None:
871-
dad = mock_empty_dataset.to_xarray_dataarray_dict()
872+
with pytest.warns(QCoDeSDeprecationWarning, match="to_xarray_dataarray_dict"):
873+
dad = mock_empty_dataset.to_xarray_dataarray_dict() # pyright: ignore[reportDeprecated]
874+
assert len(dad) == 2
875+
assert len(dad["y"].coords) == 1
876+
assert "x" in dad["y"].coords
877+
assert len(dad["z"].coords) == 1
878+
assert "x" in dad["z"].coords
879+
880+
881+
def test_export_to_xarray_dataset_dict_empty_ds(mock_empty_dataset: DataSet) -> None:
882+
dad = mock_empty_dataset.to_xarray_dataset_dict()
872883
assert len(dad) == 2
873884
assert len(dad["y"].coords) == 1
874885
assert "x" in dad["y"].coords
@@ -910,10 +921,20 @@ def test_export_to_xarray_extra_metadata(mock_dataset: DataSet) -> None:
910921
assert "snapshot" not in ds[array_name].attrs.keys()
911922

912923

924+
def test_export_to_xarray_da_dict_extra_metadata(mock_dataset: DataSet) -> None:
925+
mock_dataset.add_metadata("mytag", "somestring")
926+
mock_dataset.add_metadata("myothertag", 1)
927+
with pytest.warns(QCoDeSDeprecationWarning, match="to_xarray_dataarray_dict"):
928+
da_dict = mock_dataset.to_xarray_dataarray_dict() # pyright: ignore[reportDeprecated]
929+
930+
for datarray in da_dict.values():
931+
_assert_xarray_metadata_is_as_expected(datarray, mock_dataset)
932+
933+
913934
def test_export_to_xarray_ds_dict_extra_metadata(mock_dataset: DataSet) -> None:
914935
mock_dataset.add_metadata("mytag", "somestring")
915936
mock_dataset.add_metadata("myothertag", 1)
916-
da_dict = mock_dataset.to_xarray_dataarray_dict()
937+
da_dict = mock_dataset.to_xarray_dataset_dict()
917938

918939
for datarray in da_dict.values():
919940
_assert_xarray_metadata_is_as_expected(datarray, mock_dataset)
@@ -973,7 +994,8 @@ def test_to_xarray_ds_paramspec_metadata_is_preserved(
973994
def test_to_xarray_da_dict_paramspec_metadata_is_preserved(
974995
mock_dataset_label_unit: DataSet,
975996
) -> None:
976-
xr_das = mock_dataset_label_unit.to_xarray_dataarray_dict()
997+
with pytest.warns(QCoDeSDeprecationWarning, match="to_xarray_dataarray_dict"):
998+
xr_das = mock_dataset_label_unit.to_xarray_dataarray_dict() # pyright: ignore[reportDeprecated]
977999

9781000
for outer_param_name, xr_da in xr_das.items():
9791001
for param_name in xr_da.dims:
@@ -987,6 +1009,23 @@ def test_to_xarray_da_dict_paramspec_metadata_is_preserved(
9871009
assert xr_da.attrs[spec_name] == spec_value
9881010

9891011

1012+
def test_to_xarray_ds_dict_paramspec_metadata_is_preserved(
1013+
mock_dataset_label_unit: DataSet,
1014+
) -> None:
1015+
xr_das = mock_dataset_label_unit.to_xarray_dataset_dict()
1016+
1017+
for outer_param_name, xr_da in xr_das.items():
1018+
for param_name in xr_da.dims:
1019+
assert xr_da.coords[param_name].attrs == _get_expected_param_spec_attrs(
1020+
mock_dataset_label_unit, param_name
1021+
)
1022+
expected_param_spec_attrs = _get_expected_param_spec_attrs(
1023+
mock_dataset_label_unit, outer_param_name
1024+
)
1025+
for spec_name, spec_value in expected_param_spec_attrs.items():
1026+
assert xr_da[outer_param_name].attrs[spec_name] == spec_value
1027+
1028+
9901029
def test_export_2d_dataset(
9911030
tmp_path_factory: TempPathFactory, mock_dataset_grid: DataSet
9921031
) -> None:
@@ -1597,7 +1636,7 @@ def test_geneate_pandas_index() -> None:
15971636
@given(
15981637
function_name=hst.sampled_from(
15991638
[
1600-
"to_xarray_dataarray_dict",
1639+
"to_xarray_dataset_dict",
16011640
"to_pandas_dataframe",
16021641
"to_pandas_dataframe_dict",
16031642
"get_parameter_data",
@@ -1642,7 +1681,7 @@ def test_export_lazy_load(
16421681
@given(
16431682
function_name=hst.sampled_from(
16441683
[
1645-
"to_xarray_dataarray_dict",
1684+
"to_xarray_dataset_dict",
16461685
"to_pandas_dataframe",
16471686
"to_pandas_dataframe_dict",
16481687
"get_parameter_data",

0 commit comments

Comments
 (0)