Tests: added ASGI WebSocket.
This commit is contained in:
18
test/python/websockets/mirror/asgi.py
Normal file
18
test/python/websockets/mirror/asgi.py
Normal 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;
|
||||||
25
test/python/websockets/subprotocol/asgi.py
Normal file
25
test/python/websockets/subprotocol/asgi.py
Normal 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
1432
test/test_asgi_websockets.py
Normal file
File diff suppressed because it is too large
Load Diff
@@ -40,7 +40,7 @@ class TestApplicationWebsocket(TestApplicationProto):
|
|||||||
'Upgrade': 'websocket',
|
'Upgrade': 'websocket',
|
||||||
'Connection': 'Upgrade',
|
'Connection': 'Upgrade',
|
||||||
'Sec-WebSocket-Key': key,
|
'Sec-WebSocket-Key': key,
|
||||||
'Sec-WebSocket-Protocol': 'chat',
|
'Sec-WebSocket-Protocol': 'chat, phone, video',
|
||||||
'Sec-WebSocket-Version': 13,
|
'Sec-WebSocket-Version': 13,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user