diff options
author | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-12-29 09:04:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-29 09:04:35 +0100 |
commit | 98ad327864aed8df245fd19ea9d2743279e11643 (patch) | |
tree | 2792f22f695f3f3c04139ed9343ab1702d11323a /tests/middleware_exceptions | |
parent | 45519937e52c194776a26ec11a32f32958df7f10 (diff) | |
download | django-98ad327864aed8df245fd19ea9d2743279e11643.tar.gz |
Fixed #32299 -- Prevented mutating handlers when processing middlewares marking as unused in an async context.
Thanks Hubert Bielenia for the report.
Diffstat (limited to 'tests/middleware_exceptions')
-rw-r--r-- | tests/middleware_exceptions/tests.py | 19 |
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, |