test_middleware_mixin.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from django.contrib.sessions.middleware import SessionMiddleware
  2. from django.middleware.cache import (
  3. CacheMiddleware, FetchFromCacheMiddleware, UpdateCacheMiddleware,
  4. )
  5. from django.middleware.common import CommonMiddleware
  6. from django.middleware.security import SecurityMiddleware
  7. from django.test import SimpleTestCase
  8. from django.utils.deprecation import RemovedInDjango40Warning
  9. class MiddlewareMixinTests(SimpleTestCase):
  10. """
  11. Deprecation warning is raised when using get_response=None.
  12. """
  13. msg = 'Passing None for the middleware get_response argument is deprecated.'
  14. def test_deprecation(self):
  15. with self.assertRaisesMessage(RemovedInDjango40Warning, self.msg):
  16. CommonMiddleware()
  17. def test_passing_explicit_none(self):
  18. with self.assertRaisesMessage(RemovedInDjango40Warning, self.msg):
  19. CommonMiddleware(None)
  20. def test_subclass_deprecation(self):
  21. """
  22. Deprecation warning is raised in subclasses overriding __init__()
  23. without calling super().
  24. """
  25. for middleware in [
  26. SessionMiddleware,
  27. CacheMiddleware,
  28. FetchFromCacheMiddleware,
  29. UpdateCacheMiddleware,
  30. SecurityMiddleware,
  31. ]:
  32. with self.subTest(middleware=middleware):
  33. with self.assertRaisesMessage(RemovedInDjango40Warning, self.msg):
  34. middleware()