test_cache_versions_middleware.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. from unittest.mock import Mock, PropertyMock, patch
  2. from django.test import TestCase
  3. from django.utils.functional import SimpleLazyObject
  4. from misago.cache.cache import CACHE_NAME
  5. from misago.cache.middleware import cache_versions_middleware
  6. class MiddlewareTests(TestCase):
  7. def test_middleware_sets_attr_on_request(self):
  8. get_response = Mock()
  9. request = Mock()
  10. cache_versions = PropertyMock()
  11. type(request).cache_versions = cache_versions
  12. middleware = cache_versions_middleware(get_response)
  13. middleware(request)
  14. cache_versions.assert_called_once()
  15. def test_attr_set_by_middleware_on_request_is_lazy_object(self):
  16. get_response = Mock()
  17. request = Mock()
  18. cache_versions = PropertyMock()
  19. type(request).cache_versions = cache_versions
  20. middleware = cache_versions_middleware(get_response)
  21. middleware(request)
  22. attr_value = cache_versions.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 = cache_versions_middleware(get_response)
  28. middleware(request)
  29. get_response.assert_called_once()
  30. def test_middleware_is_not_making_db_query(self):
  31. get_response = Mock()
  32. request = Mock()
  33. with self.assertNumQueries(0):
  34. middleware = cache_versions_middleware(get_response)
  35. middleware(request)
  36. def test_middleware_is_not_reading_cache(self):
  37. get_response = Mock()
  38. request = Mock()
  39. middleware = cache_versions_middleware(get_response)
  40. middleware(request)