|
@@ -0,0 +1,48 @@
|
|
|
+from unittest.mock import Mock, PropertyMock, patch
|
|
|
+
|
|
|
+from django.test import TestCase
|
|
|
+from django.utils.functional import SimpleLazyObject
|
|
|
+
|
|
|
+from misago.cache.cache import CACHE_NAME
|
|
|
+from misago.cache.middleware import cache_versions_middleware
|
|
|
+
|
|
|
+
|
|
|
+class MiddlewareTests(TestCase):
|
|
|
+ def test_middleware_sets_attr_on_request(self):
|
|
|
+ get_response = Mock()
|
|
|
+ request = Mock()
|
|
|
+ cache_versions = PropertyMock()
|
|
|
+ type(request).cache_versions = cache_versions
|
|
|
+ middleware = cache_versions_middleware(get_response)
|
|
|
+ middleware(request)
|
|
|
+ cache_versions.assert_called_once()
|
|
|
+
|
|
|
+ def test_attr_set_by_middleware_on_request_is_lazy_object(self):
|
|
|
+ get_response = Mock()
|
|
|
+ request = Mock()
|
|
|
+ cache_versions = PropertyMock()
|
|
|
+ type(request).cache_versions = cache_versions
|
|
|
+ middleware = cache_versions_middleware(get_response)
|
|
|
+ middleware(request)
|
|
|
+ attr_value = cache_versions.call_args[0][0]
|
|
|
+ assert isinstance(attr_value, SimpleLazyObject)
|
|
|
+
|
|
|
+ def test_middleware_calls_get_response(self):
|
|
|
+ get_response = Mock()
|
|
|
+ request = Mock()
|
|
|
+ middleware = cache_versions_middleware(get_response)
|
|
|
+ middleware(request)
|
|
|
+ get_response.assert_called_once()
|
|
|
+
|
|
|
+ def test_middleware_is_not_making_db_query(self):
|
|
|
+ get_response = Mock()
|
|
|
+ request = Mock()
|
|
|
+ with self.assertNumQueries(0):
|
|
|
+ middleware = cache_versions_middleware(get_response)
|
|
|
+ middleware(request)
|
|
|
+
|
|
|
+ def test_middleware_is_not_reading_cache(self):
|
|
|
+ get_response = Mock()
|
|
|
+ request = Mock()
|
|
|
+ middleware = cache_versions_middleware(get_response)
|
|
|
+ middleware(request)
|