async def test_missing_spec_version(): app = App() scope = testing.create_scope_ws() del scope['asgi']['spec_version'] ws = testing.ASGIWebSocketSimulator() # NOTE(kgriffs): As long as this does not raise, we know the spec # version defaulted OK. await app(scope, ws._emit, ws._collect)
async def test_bad_first_event(): app = App() scope = testing.create_scope_ws() del scope['asgi']['spec_version'] ws = testing.ASGIWebSocketSimulator() wrapped_emit = ws._emit async def _emit(): if ws._state == ClientWebSocketState.CONNECT: ws._state = ClientWebSocketState.HANDSHAKE return {'type': EventType.WS_SEND} return await wrapped_emit(ws) ws._emit = _emit # NOTE(kgriffs): If there is a bad first event, the framework should # just bail out early and close the request... await app(scope, ws._emit, ws._collect) assert ws.closed assert ws.close_code == CloseCode.SERVER_ERROR