summaryrefslogtreecommitdiff
path: root/tests/deprecation
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2019-09-26 19:06:35 +0200
committerCarlton Gibson <carlton@noumenal.es>2020-02-18 20:03:44 +0100
commit4d973f593932285cd2f765400d915305d8e7333a (patch)
tree1cc48fd9e979d77906e522ecad2689d156d1377f /tests/deprecation
parenta34cb5a6d408203f4fbdb364fc9768c026eda224 (diff)
downloaddjango-4d973f593932285cd2f765400d915305d8e7333a.tar.gz
Refs #26601 -- Deprecated passing None as get_response arg to middleware classes.
This is the new contract since middleware refactoring in Django 1.10. Co-authored-by: Carlton Gibson <carlton.gibson@noumenal.es> Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Diffstat (limited to 'tests/deprecation')
-rw-r--r--tests/deprecation/test_middleware_mixin.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/deprecation/test_middleware_mixin.py b/tests/deprecation/test_middleware_mixin.py
new file mode 100644
index 0000000000..f03d9168ec
--- /dev/null
+++ b/tests/deprecation/test_middleware_mixin.py
@@ -0,0 +1,39 @@
+from django.contrib.sessions.middleware import SessionMiddleware
+from django.middleware.cache import (
+ CacheMiddleware, FetchFromCacheMiddleware, UpdateCacheMiddleware,
+)
+from django.middleware.common import CommonMiddleware
+from django.middleware.security import SecurityMiddleware
+from django.test import SimpleTestCase
+from django.utils.deprecation import RemovedInDjango40Warning
+
+
+class MiddlewareMixinTests(SimpleTestCase):
+ """
+ Deprecation warning is raised when using get_response=None.
+ """
+ msg = 'Passing None for the middleware get_response argument is deprecated.'
+
+ def test_deprecation(self):
+ with self.assertRaisesMessage(RemovedInDjango40Warning, self.msg):
+ CommonMiddleware()
+
+ def test_passing_explicit_none(self):
+ with self.assertRaisesMessage(RemovedInDjango40Warning, self.msg):
+ CommonMiddleware(None)
+
+ def test_subclass_deprecation(self):
+ """
+ Deprecation warning is raised in subclasses overriding __init__()
+ without calling super().
+ """
+ for middleware in [
+ SessionMiddleware,
+ CacheMiddleware,
+ FetchFromCacheMiddleware,
+ UpdateCacheMiddleware,
+ SecurityMiddleware,
+ ]:
+ with self.subTest(middleware=middleware):
+ with self.assertRaisesMessage(RemovedInDjango40Warning, self.msg):
+ middleware()