From 41e2aa7eb24e564f6984e6e6660b8e5ff5edbd9d Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Fri, 14 May 2021 11:53:17 +0200 Subject: [3.2.x] Fixed #32747 -- Prevented initialization of unused caches. Thanks Alexander Ebral for the report. Regression in 98e05ccde440cc9b768952cc10bc8285f4924e1f. Backport of 958cdf65ae90d26236d1815bbba804729595ec7a from main --- tests/cache/tests.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'tests/cache') diff --git a/tests/cache/tests.py b/tests/cache/tests.py index 9d79e6e758..a7530b551f 100644 --- a/tests/cache/tests.py +++ b/tests/cache/tests.py @@ -1701,6 +1701,19 @@ class CacheClosingTests(SimpleTestCase): signals.request_finished.send(self.__class__) self.assertTrue(cache.closed) + def test_close_only_initialized(self): + with self.settings(CACHES={ + 'cache_1': { + 'BACKEND': 'cache.closeable_cache.CacheClass', + }, + 'cache_2': { + 'BACKEND': 'cache.closeable_cache.CacheClass', + }, + }): + self.assertEqual(caches.all(initialized_only=True), []) + signals.request_finished.send(self.__class__) + self.assertEqual(caches.all(initialized_only=True), []) + DEFAULT_MEMORY_CACHES_SETTINGS = { 'default': { @@ -2603,3 +2616,20 @@ class CacheHandlerTest(SimpleTestCase): ) with self.assertRaisesMessage(InvalidCacheBackendError, msg): test_caches['invalid_backend'] + + def test_all(self): + test_caches = CacheHandler({ + 'cache_1': { + 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', + }, + 'cache_2': { + 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', + }, + }) + self.assertEqual(test_caches.all(initialized_only=True), []) + cache_1 = test_caches['cache_1'] + self.assertEqual(test_caches.all(initialized_only=True), [cache_1]) + self.assertEqual(len(test_caches.all()), 2) + # .all() initializes all caches. + self.assertEqual(len(test_caches.all(initialized_only=True)), 2) + self.assertEqual(test_caches.all(), test_caches.all(initialized_only=True)) -- cgit v1.3