summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorOlivier Tabone <olivier.tabone@ripplemotion.fr>2016-11-06 12:57:38 +0100
committerTim Graham <timograham@gmail.com>2017-09-06 14:38:44 -0400
commita027447f5606d60358e5da76c0e8233732ad2b17 (patch)
tree6e06934fc26d48fc59ccb5f45c3800368e625aad /tests
parent407c1249c9a0296ec8a8d95e447bd695ca471b5e (diff)
Fixed #27318 -- Made cache.set_many() return the list of failed keys.
Diffstat (limited to 'tests')
-rw-r--r--tests/cache/tests.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/cache/tests.py b/tests/cache/tests.py
index cef000cb02..e093dc842d 100644
--- a/tests/cache/tests.py
+++ b/tests/cache/tests.py
@@ -470,6 +470,11 @@ class BaseCacheTests:
self.assertEqual(cache.get("key1"), "spam")
self.assertEqual(cache.get("key2"), "eggs")
+ def test_set_many_returns_empty_list_on_success(self):
+ """set_many() returns an empty list when all keys are inserted."""
+ failing_keys = cache.set_many({'key1': 'spam', 'key2': 'eggs'})
+ self.assertEqual(failing_keys, [])
+
def test_set_many_expiration(self):
# set_many takes a second ``timeout`` parameter
cache.set_many({"key1": "spam", "key2": "eggs"}, 1)
@@ -1239,6 +1244,13 @@ class BaseMemcachedTests(BaseCacheTests):
finally:
signals.request_finished.connect(close_old_connections)
+ def test_set_many_returns_failing_keys(self):
+ def fail_set_multi(mapping, *args, **kwargs):
+ return mapping.keys()
+ with mock.patch('%s.Client.set_multi' % self.client_library_name, side_effect=fail_set_multi):
+ failing_keys = cache.set_many({'key': 'value'})
+ self.assertEqual(failing_keys, ['key'])
+
@unittest.skipUnless(MemcachedCache_params, "MemcachedCache backend not configured")
@override_settings(CACHES=caches_setting_for_tests(
@@ -1247,6 +1259,7 @@ class BaseMemcachedTests(BaseCacheTests):
))
class MemcachedCacheTests(BaseMemcachedTests, TestCase):
base_params = MemcachedCache_params
+ client_library_name = 'memcache'
def test_memcached_uses_highest_pickle_version(self):
# Regression test for #19810
@@ -1270,6 +1283,7 @@ class MemcachedCacheTests(BaseMemcachedTests, TestCase):
))
class PyLibMCCacheTests(BaseMemcachedTests, TestCase):
base_params = PyLibMCCache_params
+ client_library_name = 'pylibmc'
# libmemcached manages its own connections.
should_disconnect_on_close = False