test_invalidating_caches.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from unittest.mock import patch
  2. from django.test import TestCase
  3. from misago.cache.cache import (
  4. CACHE_NAME, get_cache_versions_from_db, invalidate_cache, invalidate_all_caches
  5. )
  6. from misago.cache.models import CacheVersion
  7. def cache_version():
  8. return CacheVersion.objects.create(cache="test_cache")
  9. class InvalidatingCacheTests(TestCase):
  10. @patch('django.core.cache.cache.delete')
  11. def test_invalidating_cache_updates_cache_version_in_database(self, _):
  12. test_cache = cache_version()
  13. invalidate_cache(test_cache.cache)
  14. updated_test_cache = CacheVersion.objects.get(cache=test_cache.cache)
  15. assert test_cache.version != updated_test_cache.version
  16. @patch('django.core.cache.cache.delete')
  17. def test_invalidating_cache_deletes_versions_cache(self, cache_delete):
  18. test_cache = cache_version()
  19. invalidate_cache(test_cache.cache)
  20. cache_delete.assert_called_once_with(CACHE_NAME)
  21. @patch('django.core.cache.cache.delete')
  22. def test_invalidating_all_caches_updates_cache_version_in_database(self, _):
  23. test_cache = cache_version()
  24. invalidate_all_caches()
  25. updated_test_cache = CacheVersion.objects.get(cache=test_cache.cache)
  26. assert test_cache.version != updated_test_cache.version
  27. @patch('django.core.cache.cache.delete')
  28. def test_invalidating_all_caches_deletes_versions_cache(self, cache_delete):
  29. cache_version()
  30. invalidate_all_caches()
  31. cache_delete.assert_called_once_with(CACHE_NAME)