diff options
author | Jordan Cook <jordan.cook@pioneer.com> | 2021-04-20 20:47:20 -0500 |
---|---|---|
committer | Jordan Cook <jordan.cook@pioneer.com> | 2021-04-20 20:48:37 -0500 |
commit | ff25727eec93461ab507849810c45e97147bdd85 (patch) | |
tree | 0b88a8ad696ccd014b7c8d7a13e188acad80bf10 | |
parent | ed0e286d2b5702b04ee7dd62d2c85138d4c79652 (diff) | |
download | requests-cache-ff25727eec93461ab507849810c45e97147bdd85.tar.gz |
Fix DynamoDbDict.__iter__ to return keys instead of values; update tests to test for this
-rw-r--r-- | HISTORY.md | 1 | ||||
-rw-r--r-- | requests_cache/backends/dynamodb.py | 2 | ||||
-rw-r--r-- | tests/integration/test_backends.py | 42 |
3 files changed, 23 insertions, 22 deletions
@@ -2,6 +2,7 @@ ## 0.7.0 (TBD) * Add option to manually cache response objects +* Fix `DynamoDbDict.__iter__` to return keys instead of values ### 0.6.3 (2021-TBD) * Fix false positive warning with `include_get_headers` diff --git a/requests_cache/backends/dynamodb.py b/requests_cache/backends/dynamodb.py index cad3ae6..ffb610c 100644 --- a/requests_cache/backends/dynamodb.py +++ b/requests_cache/backends/dynamodb.py @@ -102,7 +102,7 @@ class DynamoDbDict(BaseStorage): def __iter__(self): response = self.__scan_table() for v in response['Items']: - yield self.deserialize(v['value'].value) + yield v['key'] def clear(self): response = self.__scan_table() diff --git a/tests/integration/test_backends.py b/tests/integration/test_backends.py index 01fc338..d84eac3 100644 --- a/tests/integration/test_backends.py +++ b/tests/integration/test_backends.py @@ -31,12 +31,12 @@ class BaseStorageTestCase: d1 = self.storage_class(self.NAMESPACE, self.TABLES[0]) d2 = self.storage_class(self.NAMESPACE, self.TABLES[1]) d3 = self.storage_class(self.NAMESPACE, self.TABLES[2]) - d1[1] = 1 - d2[2] = 2 - d3[3] = 3 - assert list(d1.keys()) == [1] - assert list(d2.keys()) == [2] - assert list(d3.keys()) == [3] + d1['key_1'] = 1 + d2['key_2'] = 2 + d3['key_3'] = 3 + assert list(d1.keys()) == ['key_1'] + assert list(d2.keys()) == ['key_2'] + assert list(d3.keys()) == ['key_3'] with pytest.raises(KeyError): d1[4] @@ -44,31 +44,31 @@ class BaseStorageTestCase: def test_str(self): d = self.storage_class(self.NAMESPACE) d.clear() - d[1] = 1 - d[2] = 2 - assert d == {1: 1, 2: 2} + d['key_1'] = 'value_1' + d['key_2'] = 'value_2' + assert dict(d) == {'key_1': 'value_1', 'key_2': 'value_2'} def test_del(self): d = self.storage_class(self.NAMESPACE) d.clear() for i in range(5): - d[i] = i - del d[0] - del d[1] - del d[2] - assert list(d.keys()) == list(range(3, 5)) - assert list(d.values()) == list(range(3, 5)) + d[f'key_{i}'] = i + del d['key_0'] + del d['key_1'] + del d['key_2'] + assert set(d.keys()) == {f'key_{i}' for i in range(3, 5)} + assert set(d.values()) == set(range(3, 5)) with pytest.raises(KeyError): - del d[0] + del d['key_0'] def test_picklable_dict(self): if self.picklable: d = self.storage_class(self.NAMESPACE) - d[1] = Picklable() + d['key_1'] = Picklable() d = self.storage_class(self.NAMESPACE) - assert d[1].a == 1 - assert d[1].b == 2 + assert d['key_1'].a == 1 + assert d['key_1'].b == 2 def test_clear_and_work_again(self): d1 = self.storage_class(self.NAMESPACE) @@ -90,8 +90,8 @@ class BaseStorageTestCase: d2 = self.storage_class(self.NAMESPACE, connection=d1.connection) d1.clear() d2.clear() - d1[1] = 1 - d2[2] = 2 + d1['key_1'] = 1 + d2['key_2'] = 2 assert d1 == d2 |