Skip to content

Commit 6df7035

Browse files
committed
try making FS asynchronous
1 parent 60f32af commit 6df7035

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

tests/plugins/xcube/processors/test_mldataset.py

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import fsspec
66
import pytest
7+
import xarray as xr
78

89
from tests.plugins.xcube.helpers import make_cube_levels
910
from 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

Comments
 (0)