MCPcopy Index your code
hub / github.com/nonebot/nonebot2 / test_websocket_server

Function test_websocket_server

tests/test_driver.py:119–163  ·  view source on GitHub ↗
(app: App, driver: Driver)

Source from the content-addressed store, hash-verified

117 indirect=True,
118)
119async def test_websocket_server(app: App, driver: Driver):
120 assert isinstance(driver, ASGIMixin)
121
122 async def _handle_ws(ws: WebSocket) -> None:
123 await ws.accept()
124 data = await ws.receive()
125 assert data == "ping"
126 await ws.send("pong")
127
128 data = await ws.receive()
129 assert data == b"ping"
130 await ws.send(b"pong")
131
132 data = await ws.receive_text()
133 assert data == "ping"
134 await ws.send("pong")
135
136 data = await ws.receive_bytes()
137 assert data == b"ping"
138 await ws.send(b"pong")
139
140 with pytest.raises(WebSocketClosed, match=r"code=1000"):
141 await ws.receive()
142
143 ws_setup = WebSocketServerSetup(URL("/ws_test"), "ws_test", _handle_ws)
144 driver.setup_websocket_server(ws_setup)
145
146 async with app.test_server(driver.asgi) as ctx:
147 client = ctx.get_client()
148
149 async with client.websocket_connect("/ws_test") as ws:
150 await ws.send_text("ping")
151 assert await ws.receive_text() == "pong"
152 await ws.send_bytes(b"ping")
153 assert await ws.receive_bytes() == b"pong"
154
155 await ws.send_text("ping")
156 assert await ws.receive_text() == "pong"
157
158 await ws.send_bytes(b"ping")
159 assert await ws.receive_bytes() == b"pong"
160
161 await ws.close(code=1000)
162
163 await anyio.sleep(1)
164
165
166@pytest.mark.anyio

Callers

nothing calls this directly

Calls 7

send_textMethod · 0.45
receive_textMethod · 0.45
send_bytesMethod · 0.45
receive_bytesMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected