From eea3bb728a523b13ae96cdf15c1725a5dda466b9 Mon Sep 17 00:00:00 2001 From: Spencer Clark Date: Mon, 1 Jan 2024 07:42:42 -0500 Subject: [PATCH] Combine datetime64 and timedelta64 zarr tests; add cftime zarr test --- xarray/tests/test_backends.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/xarray/tests/test_backends.py b/xarray/tests/test_backends.py index bc086a72964..ced9bb0d520 100644 --- a/xarray/tests/test_backends.py +++ b/xarray/tests/test_backends.py @@ -48,6 +48,7 @@ ) from xarray.backends.pydap_ import PydapDataStore from xarray.backends.scipy_ import ScipyBackendEntrypoint +from xarray.coding.cftime_offsets import cftime_range from xarray.coding.strings import check_vlen_dtype, create_vlen_dtype from xarray.coding.variables import SerializationWarning from xarray.conventions import encode_dataset_coordinates @@ -2810,18 +2811,22 @@ def test_attributes(self, obj) -> None: ds.to_zarr(store_target, **self.version_kwargs) @requires_dask - def test_chunked_datetime64(self) -> None: - # Copied from @malmans2's PR #8253 - original = create_test_data().astype("datetime64[ns]").chunk(1) + @pytest.mark.parametrize("dtype", ["datetime64[ns]", "timedelta64[ns]"]) + def test_chunked_datetime64_or_timedelta64(self, dtype) -> None: + # Generalized from @malmans2's test in PR #8253 + original = create_test_data().astype(dtype).chunk(1) with self.roundtrip(original, open_kwargs={"chunks": {}}) as actual: for name, actual_var in actual.variables.items(): assert original[name].chunks == actual_var.chunks assert original.chunks == actual.chunks + @requires_cftime @requires_dask - def test_chunked_timedelta64(self) -> None: - # Based @malmans2's datetime64[ns] test in PR #8253 - original = create_test_data().astype("timedelta64[ns]").chunk(1) + def test_chunked_cftime_datetime(self) -> None: + # Based on @malmans2's test in PR #8253 + times = cftime_range("2000", freq="D", periods=3) + original = xr.Dataset(data_vars={"chunked_times": (["time"], times)}) + original = original.chunk({"time": 1}) with self.roundtrip(original, open_kwargs={"chunks": {}}) as actual: for name, actual_var in actual.variables.items(): assert original[name].chunks == actual_var.chunks