|
@@ -0,0 +1,40 @@
|
|
|
|
+from unittest.mock import patch
|
|
|
|
+
|
|
|
|
+from django.test import TestCase
|
|
|
|
+
|
|
|
|
+from misago.cache.cache import (
|
|
|
|
+ CACHE_NAME, get_cache_versions_from_db, invalidate_cache, invalidate_all_caches
|
|
|
|
+)
|
|
|
|
+from misago.cache.models import CacheVersion
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def cache_version():
|
|
|
|
+ return CacheVersion.objects.create(cache="test_cache")
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+class InvalidatingCacheTests(TestCase):
|
|
|
|
+ @patch('django.core.cache.cache.delete')
|
|
|
|
+ def test_invalidating_cache_updates_cache_version_in_database(self, _):
|
|
|
|
+ test_cache = cache_version()
|
|
|
|
+ invalidate_cache(test_cache.cache)
|
|
|
|
+ updated_test_cache = CacheVersion.objects.get(cache=test_cache.cache)
|
|
|
|
+ assert test_cache.version != updated_test_cache.version
|
|
|
|
+
|
|
|
|
+ @patch('django.core.cache.cache.delete')
|
|
|
|
+ def test_invalidating_cache_deletes_versions_cache(self, cache_delete):
|
|
|
|
+ test_cache = cache_version()
|
|
|
|
+ invalidate_cache(test_cache.cache)
|
|
|
|
+ cache_delete.assert_called_once_with(CACHE_NAME)
|
|
|
|
+
|
|
|
|
+ @patch('django.core.cache.cache.delete')
|
|
|
|
+ def test_invalidating_all_caches_updates_cache_version_in_database(self, _):
|
|
|
|
+ test_cache = cache_version()
|
|
|
|
+ invalidate_all_caches()
|
|
|
|
+ updated_test_cache = CacheVersion.objects.get(cache=test_cache.cache)
|
|
|
|
+ assert test_cache.version != updated_test_cache.version
|
|
|
|
+
|
|
|
|
+ @patch('django.core.cache.cache.delete')
|
|
|
|
+ def test_invalidating_all_caches_deletes_versions_cache(self, cache_delete):
|
|
|
|
+ cache_version()
|
|
|
|
+ invalidate_all_caches()
|
|
|
|
+ cache_delete.assert_called_once_with(CACHE_NAME)
|