From e3f6e18513224c8ad081e5a19da641f49b0b43da Mon Sep 17 00:00:00 2001 From: Jon Dufresne Date: Thu, 6 Feb 2020 17:59:20 -0800 Subject: Fixed #31253 -- Fixed data loss possibility when using caching from async code. Case missed in a415ce70bef6d91036b00dd2c8544aed7aeeaaed. --- tests/async/tests.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'tests/async') diff --git a/tests/async/tests.py b/tests/async/tests.py index f42e549075..86ed504c57 100644 --- a/tests/async/tests.py +++ b/tests/async/tests.py @@ -4,6 +4,7 @@ from unittest import mock, skipIf from asgiref.sync import async_to_sync +from django.core.cache import DEFAULT_CACHE_ALIAS, caches from django.core.exceptions import SynchronousOnlyOperation from django.test import SimpleTestCase from django.utils.asyncio import async_unsafe @@ -11,6 +12,18 @@ from django.utils.asyncio import async_unsafe from .models import SimpleModel +@skipIf(sys.platform == 'win32' and (3, 8, 0) < sys.version_info < (3, 8, 1), 'https://bugs.python.org/issue38563') +class CacheTest(SimpleTestCase): + def test_caches_local(self): + @async_to_sync + async def async_cache(): + return caches[DEFAULT_CACHE_ALIAS] + + cache_1 = async_cache() + cache_2 = async_cache() + self.assertIs(cache_1, cache_2) + + @skipIf(sys.platform == 'win32' and (3, 8, 0) < sys.version_info < (3, 8, 1), 'https://bugs.python.org/issue38563') class DatabaseConnectionTest(SimpleTestCase): """A database connection cannot be used in an async context.""" -- cgit v1.2.1