summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeo <86375512+select-case@users.noreply.github.com>2022-12-16 09:28:22 +0530
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-12-16 19:13:03 +0100
commita1bcdc94da6d597c51b4eca0411a97a6460b482e (patch)
treec895301934c40dead5e136a07dad4f6e675debb2
parent1e4da439556cdd69eb9f91e07f99cf77997e70d2 (diff)
Fixed #34212 -- Made RedisCacheClient.incr() use write connection.
Co-authored-by: Sin-Woo Bang <sinwoobang@gmail.com>
-rw-r--r--django/core/cache/backends/redis.py2
-rw-r--r--tests/cache/tests.py8
2 files changed, 9 insertions, 1 deletions
diff --git a/django/core/cache/backends/redis.py b/django/core/cache/backends/redis.py
index c370ff5cb7..eda8ac9457 100644
--- a/django/core/cache/backends/redis.py
+++ b/django/core/cache/backends/redis.py
@@ -130,7 +130,7 @@ class RedisCacheClient:
return bool(client.exists(key))
def incr(self, key, delta):
- client = self.get_client(key)
+ client = self.get_client(key, write=True)
if not client.exists(key):
raise ValueError("Key '%s' not found." % key)
return client.incr(key, delta)
diff --git a/tests/cache/tests.py b/tests/cache/tests.py
index c4d4522514..e280d3780b 100644
--- a/tests/cache/tests.py
+++ b/tests/cache/tests.py
@@ -1787,6 +1787,14 @@ class RedisCacheTests(BaseCacheTests, TestCase):
def incr_decr_type_error(self):
return self.lib.ResponseError
+ def test_incr_write_connection(self):
+ cache.set("number", 42)
+ with mock.patch(
+ "django.core.cache.backends.redis.RedisCacheClient.get_client"
+ ) as mocked_get_client:
+ cache.incr("number")
+ self.assertEqual(mocked_get_client.call_args.kwargs, {"write": True})
+
def test_cache_client_class(self):
self.assertIs(cache._class, RedisCacheClient)
self.assertIsInstance(cache._cache, RedisCacheClient)