40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
|
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()
|