|
@@ -1,45 +1,50 @@
|
|
-from unittest.mock import patch
|
|
|
|
-
|
|
|
|
-from django.test import TestCase
|
|
|
|
-
|
|
|
|
from misago.cache.versions import (
|
|
from misago.cache.versions import (
|
|
- CACHE_NAME, get_cache_versions, get_cache_versions_from_cache, get_cache_versions_from_db
|
|
|
|
|
|
+ CACHE_NAME, get_cache_versions, get_cache_versions_from_cache,
|
|
|
|
+ get_cache_versions_from_db
|
|
)
|
|
)
|
|
|
|
|
|
|
|
|
|
-class CacheVersionsTests(TestCase):
|
|
|
|
- def test_db_getter_returns_cache_versions_from_db(self):
|
|
|
|
- with self.assertNumQueries(1):
|
|
|
|
- assert get_cache_versions_from_db()
|
|
|
|
-
|
|
|
|
- @patch('django.core.cache.cache.get', return_value=True)
|
|
|
|
- def test_cache_getter_returns_cache_versions_from_cache(self, cache_get):
|
|
|
|
- assert get_cache_versions_from_cache() is True
|
|
|
|
- cache_get.assert_called_once_with(CACHE_NAME)
|
|
|
|
-
|
|
|
|
- @patch('django.core.cache.cache.get', return_value=True)
|
|
|
|
- def test_getter_reads_from_cache(self, cache_get):
|
|
|
|
- with self.assertNumQueries(0):
|
|
|
|
- assert get_cache_versions() is True
|
|
|
|
- cache_get.assert_called_once_with(CACHE_NAME)
|
|
|
|
-
|
|
|
|
- @patch('django.core.cache.cache.set')
|
|
|
|
- @patch('django.core.cache.cache.get', return_value=None)
|
|
|
|
- def test_getter_reads_from_db_when_cache_is_not_available(self, cache_get, _):
|
|
|
|
- db_caches = get_cache_versions_from_db()
|
|
|
|
- with self.assertNumQueries(1):
|
|
|
|
- assert get_cache_versions() == db_caches
|
|
|
|
- cache_get.assert_called_once_with(CACHE_NAME)
|
|
|
|
-
|
|
|
|
- @patch('django.core.cache.cache.set')
|
|
|
|
- @patch('django.core.cache.cache.get', return_value=None)
|
|
|
|
- def test_getter_sets_new_cache_if_no_cache_is_set(self, _, cache_set):
|
|
|
|
- get_cache_versions()
|
|
|
|
- db_caches = get_cache_versions_from_db()
|
|
|
|
- cache_set.assert_called_once_with(CACHE_NAME, db_caches)
|
|
|
|
-
|
|
|
|
- @patch('django.core.cache.cache.set')
|
|
|
|
- @patch('django.core.cache.cache.get', return_value=True)
|
|
|
|
- def test_getter_is_not_setting_new_cache_if_cache_is_set(self, _, cache_set):
|
|
|
|
- get_cache_versions()
|
|
|
|
- cache_set.assert_not_called()
|
|
|
|
|
|
+def test_db_getter_returns_cache_versions_from_db(db, django_assert_num_queries):
|
|
|
|
+ with django_assert_num_queries(1):
|
|
|
|
+ assert get_cache_versions_from_db()
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def test_cache_getter_returns_cache_versions_from_cache(mocker):
|
|
|
|
+ cache_get = mocker.patch('django.core.cache.cache.get', return_value=True)
|
|
|
|
+ assert get_cache_versions_from_cache() is True
|
|
|
|
+ cache_get.assert_called_once_with(CACHE_NAME)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def test_getter_reads_from_cache(mocker, django_assert_num_queries):
|
|
|
|
+ cache_get = mocker.patch('django.core.cache.cache.get', return_value=True)
|
|
|
|
+ with django_assert_num_queries(0):
|
|
|
|
+ assert get_cache_versions() is True
|
|
|
|
+ cache_get.assert_called_once_with(CACHE_NAME)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def test_getter_reads_from_db_if_no_cache_is_set(
|
|
|
|
+ db, mocker, django_assert_num_queries
|
|
|
|
+):
|
|
|
|
+ mocker.patch('django.core.cache.cache.set')
|
|
|
|
+ cache_get = mocker.patch('django.core.cache.cache.get', return_value=None)
|
|
|
|
+
|
|
|
|
+ db_caches = get_cache_versions_from_db()
|
|
|
|
+ with django_assert_num_queries(1):
|
|
|
|
+ assert get_cache_versions() == db_caches
|
|
|
|
+ cache_get.assert_called_once_with(CACHE_NAME)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def test_getter_sets_new_cache_if_no_cache_is_set(db, mocker):
|
|
|
|
+ cache_set = mocker.patch('django.core.cache.cache.set')
|
|
|
|
+ mocker.patch('django.core.cache.cache.get', return_value=None)
|
|
|
|
+
|
|
|
|
+ get_cache_versions()
|
|
|
|
+ db_caches = get_cache_versions_from_db()
|
|
|
|
+ cache_set.assert_called_once_with(CACHE_NAME, db_caches)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+def test_getter_is_not_setting_new_cache_if_cache_is_set(mocker):
|
|
|
|
+ cache_set = mocker.patch('django.core.cache.cache.set')
|
|
|
|
+ mocker.patch('django.core.cache.cache.get', return_value=True)
|
|
|
|
+ get_cache_versions()
|
|
|
|
+ cache_set.assert_not_called()
|