Skip to content

Commit 9d0483e

Browse files
committed
added pop_items to mock adapter
1 parent 4c48e9b commit 9d0483e

File tree

3 files changed

+19
-9
lines changed

3 files changed

+19
-9
lines changed

tests/integration/test_client_e2e.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1194,8 +1194,9 @@ def _validate_last_events(self, client, *to_validate):
11941194
"""Validate the last N impressions are present disregarding the order."""
11951195
event_storage = client._factory._get_storage('events')
11961196
events_raw = []
1197-
if self.pluggable_storage_adapter.get(event_storage._events_queue_key) is not None:
1198-
events_raw = [json.loads(im) for im in self.pluggable_storage_adapter.get(event_storage._events_queue_key)]
1197+
stored_events = self.pluggable_storage_adapter.pop_items(event_storage._events_queue_key)
1198+
if stored_events is not None:
1199+
events_raw = [json.loads(im) for im in stored_events]
11991200

12001201
as_tup_set = set(
12011202
(i['e']['key'], i['e']['trafficTypeName'], i['e']['eventTypeId'], i['e']['value'], str(i['e']['properties']))
@@ -1207,15 +1208,15 @@ def _validate_last_impressions(self, client, *to_validate):
12071208
"""Validate the last N impressions are present disregarding the order."""
12081209
imp_storage = client._factory._get_storage('impressions')
12091210
impressions_raw = []
1210-
if self.pluggable_storage_adapter.get(imp_storage._impressions_queue_key) is not None:
1211-
impressions_raw = [json.loads(im) for im in self.pluggable_storage_adapter.get(imp_storage._impressions_queue_key)]
1211+
stored_impressions = self.pluggable_storage_adapter.pop_items(imp_storage._impressions_queue_key)
1212+
if stored_impressions is not None:
1213+
impressions_raw = [json.loads(im) for im in stored_impressions]
12121214
as_tup_set = set(
12131215
(i['i']['f'], i['i']['k'], i['i']['t'])
12141216
for i in impressions_raw
12151217
)
12161218

12171219
assert as_tup_set == set(to_validate)
1218-
self.pluggable_storage_adapter.delete(imp_storage._impressions_queue_key)
12191220

12201221
def test_get_treatment(self):
12211222
"""Test client.get_treatment()."""

tests/integration/test_pluggable_integration.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ def test_put_fetch_contains(self):
169169
try:
170170
self._put_impressions(adapter, get_metadata({}))
171171

172-
imps = adapter.get('SPLITIO.impressions')
172+
imps = adapter.pop_items('SPLITIO.impressions')
173173
assert len(imps) == 3
174174
for rawImpression in imps:
175175
impression = json.loads(rawImpression)
@@ -186,7 +186,7 @@ def test_put_fetch_contains_ip_address_disabled(self):
186186
cfg.update({'IPAddressesEnabled': False})
187187
self._put_impressions(adapter, get_metadata(cfg))
188188

189-
imps = adapter.get('SPLITIO.impressions')
189+
imps = adapter.pop_items('SPLITIO.impressions')
190190
assert len(imps) == 3
191191
for rawImpression in imps:
192192
impression = json.loads(rawImpression)
@@ -220,7 +220,7 @@ def test_put_fetch_contains(self):
220220
adapter = StorageMockAdapter()
221221
try:
222222
self._put_events(adapter, get_metadata({}))
223-
evts = adapter.get('SPLITIO.events')
223+
evts = adapter.pop_items('SPLITIO.events')
224224
assert len(evts) == 3
225225
for rawEvent in evts:
226226
event = json.loads(rawEvent)
@@ -237,7 +237,7 @@ def test_put_fetch_contains_ip_address_disabled(self):
237237
cfg.update({'IPAddressesEnabled': False})
238238
self._put_events(adapter, get_metadata(cfg))
239239

240-
evts = adapter.get('SPLITIO.events')
240+
evts = adapter.pop_items('SPLITIO.events')
241241
assert len(evts) == 3
242242
for rawEvent in evts:
243243
event = json.loads(rawEvent)

tests/storage/test_pluggable.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,15 @@ def delete(self, key):
4848
if key in self._keys:
4949
del self._keys[key]
5050

51+
def pop_items(self, key):
52+
with self._lock:
53+
if key not in self._keys:
54+
return None
55+
items = list(self._keys[key])
56+
del self._keys[key]
57+
return items
58+
59+
5160
def increment(self, key, value):
5261
with self._lock:
5362
if key not in self._keys:

0 commit comments

Comments
 (0)