summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWichert Akkerman <wichert@wiggy.net>2014-06-05 15:24:46 +0200
committerWichert Akkerman <wichert@wiggy.net>2014-06-05 15:24:46 +0200
commitb052a62b90325ed912a7953108a8930e285e919c (patch)
treeea6199db15440412b4a108c65db650107d7e7832
parent30685d06840e18f28e7c88d1bc251e7e5e8a130d (diff)
downloaddogpile-cache-b052a62b90325ed912a7953108a8930e285e919c.tar.gz
Handle empty multi get/set
This fixes #58
-rw-r--r--dogpile/cache/region.py5
-rw-r--r--tests/cache/_fixtures.py9
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'}