summaryrefslogtreecommitdiff
path: root/tests/async
diff options
context:
space:
mode:
authorJon Dufresne <jon.dufresne@gmail.com>2020-02-06 17:59:20 -0800
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-02-11 09:09:25 +0100
commite3f6e18513224c8ad081e5a19da641f49b0b43da (patch)
tree260e3b93c96cea3ea6b5ea4cd10076c82890b77b /tests/async
parent20ba3ce4ac8e8438070568ffba76f7d8d4986a53 (diff)
downloaddjango-e3f6e18513224c8ad081e5a19da641f49b0b43da.tar.gz
Fixed #31253 -- Fixed data loss possibility when using caching from async code.
Case missed in a415ce70bef6d91036b00dd2c8544aed7aeeaaed.
Diffstat (limited to 'tests/async')
-rw-r--r--tests/async/tests.py13
1 files changed, 13 insertions, 0 deletions
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
@@ -12,6 +13,18 @@ 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."""
@async_to_sync