@@ -21,15 +21,15 @@ class StoreTests(Generic[S, B]):
21
21
store_cls : type [S ]
22
22
buffer_cls : type [B ]
23
23
24
- def set (self , store : S , key : str , value : Buffer ) -> None :
24
+ async def set (self , store : S , key : str , value : Buffer ) -> None :
25
25
"""
26
26
Insert a value into a storage backend, with a specific key.
27
27
This should not not use any store methods. Bypassing the store methods allows them to be
28
28
tested.
29
29
"""
30
30
raise NotImplementedError
31
31
32
- def get (self , store : S , key : str ) -> Buffer :
32
+ async def get (self , store : S , key : str ) -> Buffer :
33
33
"""
34
34
Retrieve a value from a storage backend, by key.
35
35
This should not not use any store methods. Bypassing the store methods allows them to be
@@ -106,7 +106,7 @@ async def test_get(
106
106
Ensure that data can be read from the store using the store.get method.
107
107
"""
108
108
data_buf = self .buffer_cls .from_bytes (data )
109
- self .set (store , key , data_buf )
109
+ await self .set (store , key , data_buf )
110
110
observed = await store .get (key , prototype = default_buffer_prototype (), byte_range = byte_range )
111
111
start , length = _normalize_interval_index (data_buf , interval = byte_range )
112
112
expected = data_buf [start : start + length ]
@@ -119,7 +119,7 @@ async def test_get_many(self, store: S) -> None:
119
119
keys = tuple (map (str , range (10 )))
120
120
values = tuple (f"{ k } " .encode () for k in keys )
121
121
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 ))
123
123
observed_buffers = await _collect_aiterator (
124
124
store ._get_many (
125
125
zip (
@@ -143,7 +143,7 @@ async def test_set(self, store: S, key: str, data: bytes) -> None:
143
143
assert not store .mode .readonly
144
144
data_buf = self .buffer_cls .from_bytes (data )
145
145
await store .set (key , data_buf )
146
- observed = self .get (store , key )
146
+ observed = await self .get (store , key )
147
147
assert_bytes_equal (observed , data_buf )
148
148
149
149
async def test_set_many (self , store : S ) -> None :
@@ -156,7 +156,7 @@ async def test_set_many(self, store: S) -> None:
156
156
store_dict = dict (zip (keys , data_buf , strict = True ))
157
157
await store ._set_many (store_dict .items ())
158
158
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 ()
160
160
161
161
@pytest .mark .parametrize (
162
162
"key_ranges" ,
@@ -172,7 +172,7 @@ async def test_get_partial_values(
172
172
) -> None :
173
173
# put all of the data
174
174
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" )))
176
176
177
177
# read back just part of it
178
178
observed_maybe = await store .get_partial_values (
@@ -211,11 +211,15 @@ async def test_delete(self, store: S) -> None:
211
211
212
212
async def test_empty (self , store : S ) -> None :
213
213
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
+ )
215
217
assert not await store .empty ()
216
218
217
219
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
+ )
219
223
await store .clear ()
220
224
assert await store .empty ()
221
225
@@ -277,8 +281,8 @@ async def test_list_dir(self, store: S) -> None:
277
281
278
282
async def test_with_mode (self , store : S ) -> None :
279
283
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
282
286
283
287
for mode in ["r" , "a" ]:
284
288
mode = cast (AccessModeLiteral , mode )
@@ -294,7 +298,7 @@ async def test_with_mode(self, store: S) -> None:
294
298
assert result .to_bytes () == data
295
299
296
300
# 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 ))
298
302
result = await clone .get ("key-2" , default_buffer_prototype ())
299
303
assert result is not None
300
304
assert result .to_bytes () == data
@@ -313,7 +317,7 @@ async def test_with_mode(self, store: S) -> None:
313
317
async def test_set_if_not_exists (self , store : S ) -> None :
314
318
key = "k"
315
319
data_buf = self .buffer_cls .from_bytes (b"0000" )
316
- self .set (store , key , data_buf )
320
+ await self .set (store , key , data_buf )
317
321
318
322
new = self .buffer_cls .from_bytes (b"1111" )
319
323
await store .set_if_not_exists ("k" , new ) # no error
0 commit comments