44
55import fsspec
66import pytest
7+ import xarray as xr
78
89from tests .plugins .xcube .helpers import make_cube_levels
910from xrlint .plugins .xcube .constants import ML_INFO_ATTR
@@ -89,15 +90,20 @@ def assert_levels_ok(
8990 else :
9091 self .assertIsNone (meta )
9192
92- def test_preprocess (self ):
93+ def preprocess (self ) -> list [ tuple [ xr . Dataset , str ]] :
9394 processor = MultiLevelDatasetProcessor ()
94- datasets = processor .preprocess (self .levels_dir , {})
95+ return processor .preprocess (
96+ self .levels_dir ,
97+ {"backend_kwargs" : {"storage_options" : {"asynchronous" : True }}},
98+ )
99+
100+ def test_preprocess (self ):
101+ datasets = self .preprocess ()
95102 self .assert_levels_ok (datasets , expect_meta = True )
96103
97104 def test_preprocess_no_meta (self ):
98105 self .fs .delete (self .meta_path )
99- processor = MultiLevelDatasetProcessor ()
100- datasets = processor .preprocess (self .levels_dir , {})
106+ datasets = self .preprocess ()
101107 self .assert_levels_ok (datasets , expect_meta = False )
102108
103109 def test_preprocess_with_link (self ):
@@ -108,24 +114,21 @@ def test_preprocess_with_link(self):
108114 )
109115 self .fs .delete (f"{ self .levels_dir } /0.zarr" , recursive = True )
110116 self .fs .write_text (f"{ self .levels_dir } /0.link" , f"../{ self .levels_name } .zarr" )
111- processor = MultiLevelDatasetProcessor ()
112- datasets = processor .preprocess (self .levels_dir , {})
117+ datasets = self .preprocess ()
113118 self .assert_levels_ok (datasets , expect_meta = True , expect_link = True )
114119
115120 def test_preprocess_fail_empty (self ):
116121 for i in range (self .num_levels ):
117122 self .fs .delete (f"{ self .levels_dir } /{ i } .zarr" , recursive = True )
118- processor = MultiLevelDatasetProcessor ()
119123 with pytest .raises (ValueError , match = "empty multi-level dataset" ):
120- processor .preprocess (self . levels_dir , {} )
124+ self .preprocess ()
121125
122126 def test_preprocess_fail_missing (self ):
123127 self .fs .delete (f"{ self .levels_dir } /1.zarr" , recursive = True )
124- processor = MultiLevelDatasetProcessor ()
125128 with pytest .raises (
126129 ValueError , match = "missing dataset for level 1 in multi-level dataset"
127130 ):
128- processor .preprocess (self . levels_dir , {} )
131+ self .preprocess ()
129132
130133 def test_postprocess (self ):
131134 processor = MultiLevelDatasetProcessor ()
0 commit comments