diff --git a/xarray/tests/test_backends_datatree.py b/xarray/tests/test_backends_datatree.py index 72e8a7464c5..0672c972bdb 100644 --- a/xarray/tests/test_backends_datatree.py +++ b/xarray/tests/test_backends_datatree.py @@ -155,6 +155,23 @@ def test_netcdf_encoding(self, tmpdir, simple_datatree): @requires_netCDF4 class TestNetCDF4DatatreeIO(DatatreeIOBase): engine: T_DataTreeNetcdfEngine | None = "netcdf4" + keywords: [ + {"mask_and_scale":True}, + {"decode_times":True}, + {"concat_characters":True}, + {"decode_coords":True}, + {"drop_variables": str | Iterable[str] | None : None}, + {"use_cftime":None}, + {"decode_timedelta":None}, + {"group": str | Iterable[str] | Callable | None = None,}, + {"mode":"r"}, + {"format":"NETCDF4"}, + {"clobber":True}, + {"diskless":False}, + {"persist":False}, + {"lock":None}, + {"autoclose":False} + ] | None = {} def test_open_datatree(self, unaligned_datatree_nc) -> None: """Test if `open_datatree` fails to open a netCDF4 with an unaligned group hierarchy.""" @@ -241,11 +258,57 @@ def test_open_groups_to_dict(self, tmpdir) -> None: @requires_h5netcdf class TestH5NetCDFDatatreeIO(DatatreeIOBase): engine: T_DataTreeNetcdfEngine | None = "h5netcdf" + keywords: [ + {"mask_and_scale":True}, + {"decode_times":True}, + {"concat_characters":True}, + {"decode_coords":True}, + {"drop_variables": str | Iterable[str] | None : None}, + {"use_cftime":None}, + {"decode_timedelta":None}, + {"format":None}, + {"group":None}, + {"lock":None}, + {"invalid_netcdf":None}, + {"phony_dims":None}, + {"decode_vlen_strings":True}, + {"driver":None}, + {"driver_kwds":None} + ] | None = {} + + + def test_pass_engine_kwargs(self, tmpdir, simple_datatree): + filepath = tmpdir / "test.nc" + original_dt = simple_datatree + original_dt.to_netcdf(filepath, engine=self.engine) + + roundtrip_dt = open_datatree(filepath, engine=self.engine, phony_dims="sort") + assert_equal(original_dt, roundtrip_dt) + @requires_zarr class TestZarrDatatreeIO: engine = "zarr" + keywords: [ + {"mask_and_scale":True}, + {"decode_times":True}, + {"concat_characters":True}, + {"decode_coords":True}, + {"drop_variables":str | Iterable[str] | None = None}, + {"use_cftime":None}, + {"decode_timedelta":None}, + {"group":str | Iterable[str] | Callable | None = None}, + {"mode":"r"}, + {"synchronizer":None}, + {"consolidated":None}, + {"chunk_store":None}, + {"storage_options":None}, + {"stacklevel":3} + {"zarr_version":None}, + {"store":None}, + {"engine":None} + ] | None = {} def test_to_zarr(self, tmpdir, simple_datatree): filepath = tmpdir / "test.zarr"