summaryrefslogtreecommitdiff
path: root/tests/middleware_exceptions/tests.py
diff options
context:
space:
mode:
authorMariusz Felisiak <felisiak.mariusz@gmail.com>2020-12-29 09:04:35 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2020-12-29 09:06:03 +0100
commit6b4b7da740cea6d1fc7ae7028a357587f3e9d0b3 (patch)
treedbf4540d65431a4ad1b8f6ac8faead6fa91cb97e /tests/middleware_exceptions/tests.py
parent3029e22607818b711a1954d27709392276798d19 (diff)
[3.1.x] Fixed #32299 -- Prevented mutating handlers when processing middlewares marking as unused in an async context.
Thanks Hubert Bielenia for the report. Backport of 98ad327864aed8df245fd19ea9d2743279e11643 from master
Diffstat (limited to 'tests/middleware_exceptions/tests.py')
-rw-r--r--tests/middleware_exceptions/tests.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/tests/middleware_exceptions/tests.py b/tests/middleware_exceptions/tests.py
index 8b019ba524..2a389ce125 100644
--- a/tests/middleware_exceptions/tests.py
+++ b/tests/middleware_exceptions/tests.py
@@ -181,6 +181,25 @@ class MiddlewareNotUsedTests(SimpleTestCase):
with self.assertLogs('django.request', 'DEBUG'):
self.client.get('/middleware_exceptions/view/')
+ @override_settings(MIDDLEWARE=[
+ 'middleware_exceptions.middleware.SyncAndAsyncMiddleware',
+ 'middleware_exceptions.tests.MyMiddleware',
+ ])
+ async def test_async_and_sync_middleware_chain_async_call(self):
+ with self.assertLogs('django.request', 'DEBUG') as cm:
+ response = await self.async_client.get('/middleware_exceptions/view/')
+ self.assertEqual(response.content, b'OK')
+ self.assertEqual(response.status_code, 200)
+ self.assertEqual(
+ cm.records[0].getMessage(),
+ 'Asynchronous middleware middleware_exceptions.tests.MyMiddleware '
+ 'adapted.',
+ )
+ self.assertEqual(
+ cm.records[1].getMessage(),
+ "MiddlewareNotUsed: 'middleware_exceptions.tests.MyMiddleware'",
+ )
+
@override_settings(
DEBUG=True,