test_dynamic_settings_middleware.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. from unittest.mock import Mock, PropertyMock, patch
  2. from django.test import TestCase
  3. from django.utils.functional import SimpleLazyObject
  4. from misago.conf.dynamicsettings import DynamicSettings
  5. from misago.conf.middleware import dynamic_settings_middleware
  6. class MiddlewareTests(TestCase):
  7. def test_middleware_sets_attr_on_request(self):
  8. get_response = Mock()
  9. request = Mock()
  10. settings = PropertyMock()
  11. type(request).settings = settings
  12. middleware = dynamic_settings_middleware(get_response)
  13. middleware(request)
  14. settings.assert_called_once()
  15. def test_attr_set_by_middleware_on_request_is_lazy_object(self):
  16. get_response = Mock()
  17. request = Mock()
  18. settings = PropertyMock()
  19. type(request).settings = settings
  20. middleware = dynamic_settings_middleware(get_response)
  21. middleware(request)
  22. attr_value = settings.call_args[0][0]
  23. assert isinstance(attr_value, SimpleLazyObject)
  24. def test_middleware_calls_get_response(self):
  25. get_response = Mock()
  26. request = Mock()
  27. middleware = dynamic_settings_middleware(get_response)
  28. middleware(request)
  29. get_response.assert_called_once()
  30. def test_middleware_is_not_reading_db(self):
  31. get_response = Mock()
  32. request = Mock()
  33. with self.assertNumQueries(0):
  34. middleware = dynamic_settings_middleware(get_response)
  35. middleware(request)
  36. @patch('django.core.cache.cache.get')
  37. def test_middleware_is_not_reading_cache(self, cache_get):
  38. get_response = Mock()
  39. request = Mock()
  40. middleware = dynamic_settings_middleware(get_response)
  41. middleware(request)
  42. cache_get.assert_not_called()