|
17 | 17 | from zarr.abc.store import ByteRangeRequest, Store |
18 | 18 | from zarr.core.buffer import Buffer, default_buffer_prototype |
19 | 19 | from zarr.core.sync import _collect_aiterator |
20 | | -from zarr.storage._utils import _normalize_interval_index |
| 20 | +from zarr.storage._utils import _normalize_byte_range_index |
21 | 21 | from zarr.testing.utils import assert_bytes_equal |
22 | 22 |
|
23 | 23 | __all__ = ["StoreTests"] |
@@ -115,17 +115,15 @@ def test_store_supports_listing(self, store: S) -> None: |
115 | 115 |
|
116 | 116 | @pytest.mark.parametrize("key", ["c/0", "foo/c/0.0", "foo/0/0"]) |
117 | 117 | @pytest.mark.parametrize("data", [b"\x01\x02\x03\x04", b""]) |
118 | | - @pytest.mark.parametrize("byte_range", [None, (0, None), (1, None), (1, 2), (None, 1)]) |
119 | | - async def test_get( |
120 | | - self, store: S, key: str, data: bytes, byte_range: tuple[int | None, int | None] | None |
121 | | - ) -> None: |
| 118 | + @pytest.mark.parametrize("byte_range", [None, (1, 3), {"offset": 1}, {"suffix": 1}]) |
| 119 | + async def test_get(self, store: S, key: str, data: bytes, byte_range: ByteRangeRequest) -> None: |
122 | 120 | """ |
123 | 121 | Ensure that data can be read from the store using the store.get method. |
124 | 122 | """ |
125 | 123 | data_buf = self.buffer_cls.from_bytes(data) |
126 | 124 | await self.set(store, key, data_buf) |
127 | 125 | observed = await store.get(key, prototype=default_buffer_prototype(), byte_range=byte_range) |
128 | | - start, length = _normalize_interval_index(data_buf, interval=byte_range) |
| 126 | + start, length = _normalize_byte_range_index(data_buf, byte_range=byte_range) |
129 | 127 | expected = data_buf[start : start + length] |
130 | 128 | assert_bytes_equal(observed, expected) |
131 | 129 |
|
@@ -180,12 +178,12 @@ async def test_set_many(self, store: S) -> None: |
180 | 178 | [ |
181 | 179 | [], |
182 | 180 | [("zarr.json", (0, 1))], |
183 | | - [("c/0", (0, 1)), ("zarr.json", (0, None))], |
184 | | - [("c/0/0", (0, 1)), ("c/0/1", (None, 2)), ("c/0/2", (0, 3))], |
| 181 | + [("c/0", (0, 1)), ("zarr.json", None)], |
| 182 | + [("c/0/0", (0, 1)), ("c/0/1", {"suffix": 2}), ("c/0/2", {"offset": 2})], |
185 | 183 | ], |
186 | 184 | ) |
187 | 185 | async def test_get_partial_values( |
188 | | - self, store: S, key_ranges: list[tuple[str, tuple[int | None, int | None]]] |
| 186 | + self, store: S, key_ranges: list[tuple[str, ByteRangeRequest]] |
189 | 187 | ) -> None: |
190 | 188 | # put all of the data |
191 | 189 | for key, _ in key_ranges: |
|
0 commit comments