|
@@ -0,0 +1,50 @@
|
|
|
+from unittest.mock import Mock, PropertyMock, patch
|
|
|
+
|
|
|
+from django.test import TestCase
|
|
|
+from django.utils.functional import SimpleLazyObject
|
|
|
+
|
|
|
+from misago.conf.dynamicsettings import DynamicSettings
|
|
|
+from misago.conf.middleware import dynamic_settings_middleware
|
|
|
+
|
|
|
+
|
|
|
+class MiddlewareTests(TestCase):
|
|
|
+ def test_middleware_sets_attr_on_request(self):
|
|
|
+ get_response = Mock()
|
|
|
+ request = Mock()
|
|
|
+ settings = PropertyMock()
|
|
|
+ type(request).settings = settings
|
|
|
+ middleware = dynamic_settings_middleware(get_response)
|
|
|
+ middleware(request)
|
|
|
+ settings.assert_called_once()
|
|
|
+
|
|
|
+ def test_attr_set_by_middleware_on_request_is_lazy_object(self):
|
|
|
+ get_response = Mock()
|
|
|
+ request = Mock()
|
|
|
+ settings = PropertyMock()
|
|
|
+ type(request).settings = settings
|
|
|
+ middleware = dynamic_settings_middleware(get_response)
|
|
|
+ middleware(request)
|
|
|
+ attr_value = settings.call_args[0][0]
|
|
|
+ assert isinstance(attr_value, SimpleLazyObject)
|
|
|
+
|
|
|
+ def test_middleware_calls_get_response(self):
|
|
|
+ get_response = Mock()
|
|
|
+ request = Mock()
|
|
|
+ middleware = dynamic_settings_middleware(get_response)
|
|
|
+ middleware(request)
|
|
|
+ get_response.assert_called_once()
|
|
|
+
|
|
|
+ def test_middleware_is_not_reading_db(self):
|
|
|
+ get_response = Mock()
|
|
|
+ request = Mock()
|
|
|
+ with self.assertNumQueries(0):
|
|
|
+ middleware = dynamic_settings_middleware(get_response)
|
|
|
+ middleware(request)
|
|
|
+
|
|
|
+ @patch('django.core.cache.cache.get')
|
|
|
+ def test_middleware_is_not_reading_cache(self, cache_get):
|
|
|
+ get_response = Mock()
|
|
|
+ request = Mock()
|
|
|
+ middleware = dynamic_settings_middleware(get_response)
|
|
|
+ middleware(request)
|
|
|
+ cache_get.assert_not_called()
|