diff options
| author | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2025-06-18 08:55:15 +0200 |
|---|---|---|
| committer | Sarah Boyce <42296566+sarahboyce@users.noreply.github.com> | 2025-06-18 11:25:14 +0200 |
| commit | 1cd91d5d4bfb65ea7b5c7177310f849d05037609 (patch) | |
| tree | 388b8080198f341ad1744c4ce31e57ad048599e9 /tests/asgi | |
| parent | 1520870c4a6c47df3ed2f597785a8d35a1710bc4 (diff) | |
Refs #36467 -- Added test for Set-Cookie header values in ASGIHandler.
Diffstat (limited to 'tests/asgi')
| -rw-r--r-- | tests/asgi/tests.py | 10 | ||||
| -rw-r--r-- | tests/asgi/urls.py | 7 |
2 files changed, 17 insertions, 0 deletions
diff --git a/tests/asgi/tests.py b/tests/asgi/tests.py index 94ec5dc560..d3cc09cc50 100644 --- a/tests/asgi/tests.py +++ b/tests/asgi/tests.py @@ -78,6 +78,16 @@ class ASGITest(SimpleTestCase): # Allow response.close() to finish. await communicator.wait() + async def test_asgi_cookies(self): + application = get_asgi_application() + scope = self.async_request_factory._base_scope(path="/cookie/") + communicator = ApplicationCommunicator(application, scope) + await communicator.send_input({"type": "http.request"}) + response_start = await communicator.receive_output() + self.assertIn((b"Set-Cookie", b"key=value; Path=/"), response_start["headers"]) + # Allow response.close() to finish. + await communicator.wait() + # Python's file API is not async compatible. A third-party library such # as https://github.com/Tinche/aiofiles allows passing the file to # FileResponse as an async iterator. With a sync iterator diff --git a/tests/asgi/urls.py b/tests/asgi/urls.py index 931b7d5206..0311cf3f76 100644 --- a/tests/asgi/urls.py +++ b/tests/asgi/urls.py @@ -25,6 +25,12 @@ def hello_meta(request): ) +def hello_cookie(request): + response = HttpResponse("Hello World!") + response.set_cookie("key", "value") + return response + + def sync_waiter(request): with sync_waiter.lock: sync_waiter.active_threads.add(threading.current_thread()) @@ -61,6 +67,7 @@ test_filename = __file__ urlpatterns = [ path("", hello), + path("cookie/", hello_cookie), path("file/", lambda x: FileResponse(open(test_filename, "rb"))), path("meta/", hello_meta), path("post/", post_echo), |
