diff options
author | Wichert Akkerman <wichert@wiggy.net> | 2014-06-05 15:24:46 +0200 |
---|---|---|
committer | Wichert Akkerman <wichert@wiggy.net> | 2014-06-05 15:24:46 +0200 |
commit | b052a62b90325ed912a7953108a8930e285e919c (patch) | |
tree | ea6199db15440412b4a108c65db650107d7e7832 | |
parent | 30685d06840e18f28e7c88d1bc251e7e5e8a130d (diff) | |
download | dogpile-cache-b052a62b90325ed912a7953108a8930e285e919c.tar.gz |
Handle empty multi get/set
This fixes #58
-rw-r--r-- | dogpile/cache/region.py | 5 | ||||
-rw-r--r-- | tests/cache/_fixtures.py | 9 |
2 files changed, 14 insertions, 0 deletions
diff --git a/dogpile/cache/region.py b/dogpile/cache/region.py index e7d152b..39cfd0a 100644 --- a/dogpile/cache/region.py +++ b/dogpile/cache/region.py @@ -503,6 +503,9 @@ class CacheRegion(object): .. versionadded:: 0.5.0 """ + if not keys: + return [] + if self.key_mangler: keys = list(map(lambda key: self.key_mangler(key), keys)) @@ -781,6 +784,8 @@ class CacheRegion(object): .. versionadded:: 0.5.0 """ + if not mapping: + return if self.key_mangler: mapping = dict((self.key_mangler(k), self._value(v)) diff --git a/tests/cache/_fixtures.py b/tests/cache/_fixtures.py index 0b6e2a0..f12c366 100644 --- a/tests/cache/_fixtures.py +++ b/tests/cache/_fixtures.py @@ -101,6 +101,10 @@ class _GenericBackendTest(_GenericBackendFixture, TestCase): eq_(values['key2'], reg.get('key2')) eq_(values['key3'], reg.get('key3')) + def test_region_set_zero_multiple_values(self): + reg = self._region() + reg.set_multi({}) + def test_region_get_multiple_values(self): reg = self._region() key1 = 'value1' @@ -126,6 +130,11 @@ class _GenericBackendTest(_GenericBackendFixture, TestCase): ] ) + def test_region_get_empty_multiple(self): + reg = self._region() + reg_values = reg.get_multi([]) + eq_(reg_values, []) + def test_region_delete_multiple(self): reg = self._region() values = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'} |