diff options
author | Claude Paroz <claude@2xlibre.net> | 2019-09-26 19:06:35 +0200 |
---|---|---|
committer | Carlton Gibson <carlton@noumenal.es> | 2020-02-18 20:03:44 +0100 |
commit | 4d973f593932285cd2f765400d915305d8e7333a (patch) | |
tree | 1cc48fd9e979d77906e522ecad2689d156d1377f /tests/deprecation | |
parent | a34cb5a6d408203f4fbdb364fc9768c026eda224 (diff) | |
download | django-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.py | 39 |
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() |