From bcd255cd5ca0a1e686d276cca71f45ec400d84a2 Mon Sep 17 00:00:00 2001 From: Carlton Gibson Date: Fri, 5 Apr 2024 10:24:36 +0200 Subject: Fixed #35354 -- Simplified ASGIRequest path handling. Following the ASGI HTTP Connection Scope docs[0], the provided `path` is already the correct value that Django requires. In combination with `root_path`, from which `script_name` is derived, the `path_info` variable is set. It's then redundant to re-calculate `path` from `script_name` and `path_info`. See also, a clarifying discussion on the ASGIref repo[1]. [0]: https://asgi.readthedocs.io/en/latest/specs/www.html#http-connection-scope [1]: https://github.com/django/asgiref/issues/424 --- tests/handlers/tests.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/handlers/tests.py b/tests/handlers/tests.py index 959e4737d2..ffa362abdd 100644 --- a/tests/handlers/tests.py +++ b/tests/handlers/tests.py @@ -335,11 +335,13 @@ class AsyncHandlerRequestTests(SimpleTestCase): self.assertEqual(request.script_name, "/root") self.assertEqual(request.path_info, "/somepath/") - @override_settings(FORCE_SCRIPT_NAME="/FORCED_PREFIX/") + @override_settings(FORCE_SCRIPT_NAME="/FORCED_PREFIX") def test_force_script_name(self): async_request_factory = AsyncRequestFactory() - request = async_request_factory.request(**{"path": "/somepath/"}) + request = async_request_factory.request(**{"path": "/FORCED_PREFIX/somepath/"}) self.assertEqual(request.path, "/FORCED_PREFIX/somepath/") + self.assertEqual(request.script_name, "/FORCED_PREFIX") + self.assertEqual(request.path_info, "/somepath/") async def test_sync_streaming(self): response = await self.async_client.get("/streaming/") -- cgit v1.3