summaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--test/python/body_bytearray/asgi.py20
-rw-r--r--test/test_asgi_application.py8
2 files changed, 28 insertions, 0 deletions
diff --git a/test/python/body_bytearray/asgi.py b/test/python/body_bytearray/asgi.py
new file mode 100644
index 00000000..6d2f402f
--- /dev/null
+++ b/test/python/body_bytearray/asgi.py
@@ -0,0 +1,20 @@
+async def application(scope, receive, send):
+ assert scope['type'] == 'http'
+
+ body = b''
+ while True:
+ m = await receive()
+ body += m.get('body', b'')
+ if not m.get('more_body', False):
+ body = bytearray(body)
+ break
+
+ await send(
+ {
+ 'type': 'http.response.start',
+ 'status': 200,
+ 'headers': [(b'content-length', str(len(body)).encode())],
+ }
+ )
+
+ await send({'type': 'http.response.body', 'body': body})
diff --git a/test/test_asgi_application.py b/test/test_asgi_application.py
index e6668b2f..226a1ed7 100644
--- a/test/test_asgi_application.py
+++ b/test/test_asgi_application.py
@@ -218,6 +218,14 @@ def test_asgi_application_shm_ack_handle():
assert resp['body'] == body, 'keep-alive 1'
+def test_asgi_application_body_bytearray():
+ client.load('body_bytearray')
+
+ body = '0123456789'
+
+ assert client.post(body=body)['body'] == body
+
+
def test_asgi_keepalive_body():
client.load('mirror')