summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/asgi/tests.py10
-rw-r--r--tests/asgi/urls.py7
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),