Skip to content

Commit fada53e

Browse files
committed
fix(storage): change StoreTests get/set methods to async
1 parent 7e2be57 commit fada53e

File tree

9 files changed

+25
-355
lines changed

9 files changed

+25
-355
lines changed

src/zarr/codecs/vlen_utf8.py

Lines changed: 0 additions & 117 deletions
This file was deleted.

src/zarr/core/strings.py

Lines changed: 0 additions & 87 deletions
This file was deleted.

src/zarr/testing/store.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ class StoreTests(Generic[S, B]):
2121
store_cls: type[S]
2222
buffer_cls: type[B]
2323

24-
def set(self, store: S, key: str, value: Buffer) -> None:
24+
async def set(self, store: S, key: str, value: Buffer) -> None:
2525
"""
2626
Insert a value into a storage backend, with a specific key.
2727
This should not not use any store methods. Bypassing the store methods allows them to be
2828
tested.
2929
"""
3030
raise NotImplementedError
3131

32-
def get(self, store: S, key: str) -> Buffer:
32+
async def get(self, store: S, key: str) -> Buffer:
3333
"""
3434
Retrieve a value from a storage backend, by key.
3535
This should not not use any store methods. Bypassing the store methods allows them to be
@@ -106,7 +106,7 @@ async def test_get(
106106
Ensure that data can be read from the store using the store.get method.
107107
"""
108108
data_buf = self.buffer_cls.from_bytes(data)
109-
self.set(store, key, data_buf)
109+
await self.set(store, key, data_buf)
110110
observed = await store.get(key, prototype=default_buffer_prototype(), byte_range=byte_range)
111111
start, length = _normalize_interval_index(data_buf, interval=byte_range)
112112
expected = data_buf[start : start + length]
@@ -119,7 +119,7 @@ async def test_get_many(self, store: S) -> None:
119119
keys = tuple(map(str, range(10)))
120120
values = tuple(f"{k}".encode() for k in keys)
121121
for k, v in zip(keys, values, strict=False):
122-
self.set(store, k, self.buffer_cls.from_bytes(v))
122+
await self.set(store, k, self.buffer_cls.from_bytes(v))
123123
observed_buffers = await _collect_aiterator(
124124
store._get_many(
125125
zip(
@@ -143,7 +143,7 @@ async def test_set(self, store: S, key: str, data: bytes) -> None:
143143
assert not store.mode.readonly
144144
data_buf = self.buffer_cls.from_bytes(data)
145145
await store.set(key, data_buf)
146-
observed = self.get(store, key)
146+
observed = await self.get(store, key)
147147
assert_bytes_equal(observed, data_buf)
148148

149149
async def test_set_many(self, store: S) -> None:
@@ -156,7 +156,7 @@ async def test_set_many(self, store: S) -> None:
156156
store_dict = dict(zip(keys, data_buf, strict=True))
157157
await store._set_many(store_dict.items())
158158
for k, v in store_dict.items():
159-
assert self.get(store, k).to_bytes() == v.to_bytes()
159+
assert (await self.get(store, k)).to_bytes() == v.to_bytes()
160160

161161
@pytest.mark.parametrize(
162162
"key_ranges",
@@ -172,7 +172,7 @@ async def test_get_partial_values(
172172
) -> None:
173173
# put all of the data
174174
for key, _ in key_ranges:
175-
self.set(store, key, self.buffer_cls.from_bytes(bytes(key, encoding="utf-8")))
175+
await self.set(store, key, self.buffer_cls.from_bytes(bytes(key, encoding="utf-8")))
176176

177177
# read back just part of it
178178
observed_maybe = await store.get_partial_values(
@@ -211,11 +211,15 @@ async def test_delete(self, store: S) -> None:
211211

212212
async def test_empty(self, store: S) -> None:
213213
assert await store.empty()
214-
self.set(store, "key", self.buffer_cls.from_bytes(bytes("something", encoding="utf-8")))
214+
await self.set(
215+
store, "key", self.buffer_cls.from_bytes(bytes("something", encoding="utf-8"))
216+
)
215217
assert not await store.empty()
216218

217219
async def test_clear(self, store: S) -> None:
218-
self.set(store, "key", self.buffer_cls.from_bytes(bytes("something", encoding="utf-8")))
220+
await self.set(
221+
store, "key", self.buffer_cls.from_bytes(bytes("something", encoding="utf-8"))
222+
)
219223
await store.clear()
220224
assert await store.empty()
221225

@@ -277,8 +281,8 @@ async def test_list_dir(self, store: S) -> None:
277281

278282
async def test_with_mode(self, store: S) -> None:
279283
data = b"0000"
280-
self.set(store, "key", self.buffer_cls.from_bytes(data))
281-
assert self.get(store, "key").to_bytes() == data
284+
await self.set(store, "key", self.buffer_cls.from_bytes(data))
285+
assert (await self.get(store, "key")).to_bytes() == data
282286

283287
for mode in ["r", "a"]:
284288
mode = cast(AccessModeLiteral, mode)
@@ -294,7 +298,7 @@ async def test_with_mode(self, store: S) -> None:
294298
assert result.to_bytes() == data
295299

296300
# writes to original after with_mode is visible
297-
self.set(store, "key-2", self.buffer_cls.from_bytes(data))
301+
await self.set(store, "key-2", self.buffer_cls.from_bytes(data))
298302
result = await clone.get("key-2", default_buffer_prototype())
299303
assert result is not None
300304
assert result.to_bytes() == data
@@ -313,7 +317,7 @@ async def test_with_mode(self, store: S) -> None:
313317
async def test_set_if_not_exists(self, store: S) -> None:
314318
key = "k"
315319
data_buf = self.buffer_cls.from_bytes(b"0000")
316-
self.set(store, key, data_buf)
320+
await self.set(store, key, data_buf)
317321

318322
new = self.buffer_cls.from_bytes(b"1111")
319323
await store.set_if_not_exists("k", new) # no error

tests/test_strings.py

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)