test_getting_cache_versions.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from unittest.mock import patch
  2. from django.test import TestCase
  3. from misago.cache.versions import (
  4. CACHE_NAME, get_cache_versions, get_cache_versions_from_cache, get_cache_versions_from_db
  5. )
  6. class CacheVersionsTests(TestCase):
  7. def test_db_getter_returns_cache_versions_from_db(self):
  8. with self.assertNumQueries(1):
  9. assert get_cache_versions_from_db()
  10. @patch('django.core.cache.cache.get', return_value=True)
  11. def test_cache_getter_returns_cache_versions_from_cache(self, cache_get):
  12. assert get_cache_versions_from_cache() is True
  13. cache_get.assert_called_once_with(CACHE_NAME)
  14. @patch('django.core.cache.cache.get', return_value=True)
  15. def test_getter_reads_from_cache(self, cache_get):
  16. with self.assertNumQueries(0):
  17. assert get_cache_versions() is True
  18. cache_get.assert_called_once_with(CACHE_NAME)
  19. @patch('django.core.cache.cache.set')
  20. @patch('django.core.cache.cache.get', return_value=None)
  21. def test_getter_reads_from_db_when_cache_is_not_available(self, cache_get, _):
  22. db_caches = get_cache_versions_from_db()
  23. with self.assertNumQueries(1):
  24. assert get_cache_versions() == db_caches
  25. cache_get.assert_called_once_with(CACHE_NAME)
  26. @patch('django.core.cache.cache.set')
  27. @patch('django.core.cache.cache.get', return_value=None)
  28. def test_getter_sets_new_cache_if_no_cache_is_set(self, _, cache_set):
  29. get_cache_versions()
  30. db_caches = get_cache_versions_from_db()
  31. cache_set.assert_called_once_with(CACHE_NAME, db_caches)
  32. @patch('django.core.cache.cache.set')
  33. @patch('django.core.cache.cache.get', return_value=True)
  34. def test_getter_is_not_setting_new_cache_if_cache_is_set(self, _, cache_set):
  35. get_cache_versions()
  36. cache_set.assert_not_called()