Tests: added ASGI WebSocket.

This commit is contained in:
Max Romanov
2020-10-01 23:55:35 +03:00
parent c4c2f90c5b
commit d97e3a3296
4 changed files with 1476 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
async def application(scope, receive, send):
if scope['type'] == 'websocket':
while True:
m = await receive()
if m['type'] == 'websocket.connect':
await send({
'type': 'websocket.accept',
})
if m['type'] == 'websocket.receive':
await send({
'type': 'websocket.send',
'bytes': m.get('bytes', None),
'text': m.get('text', None),
})
if m['type'] == 'websocket.disconnect':
break;

View File

@@ -0,0 +1,25 @@
async def application(scope, receive, send):
assert scope['type'] == 'websocket'
while True:
m = await receive()
if m['type'] == 'websocket.connect':
subprotocols = scope['subprotocols']
await send({
'type': 'websocket.accept',
'headers': [
(b'x-subprotocols', str(subprotocols).encode()),
],
'subprotocol': subprotocols[0],
})
if m['type'] == 'websocket.receive':
await send({
'type': 'websocket.send',
'bytes': m.get('bytes', None),
'text': m.get('text', None),
})
if m['type'] == 'websocket.disconnect':
break;

1432
test/test_asgi_websockets.py Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -40,7 +40,7 @@ class TestApplicationWebsocket(TestApplicationProto):
'Upgrade': 'websocket',
'Connection': 'Upgrade',
'Sec-WebSocket-Key': key,
'Sec-WebSocket-Protocol': 'chat',
'Sec-WebSocket-Protocol': 'chat, phone, video',
'Sec-WebSocket-Version': 13,
}