async def test_close_timeout_sock_close_read(aiohttp_client) -> None: async def handler(request): ws = web.WebSocketResponse() await ws.prepare(request) await ws.receive_bytes() await ws.send_str('test') await asyncio.sleep(1) return ws app = web.Application() app.router.add_route('GET', '/', handler) client = await aiohttp_client(app) timeout = ClientWSTimeout(ws_close=0.2) resp = await client.ws_connect('/', timeout=timeout, autoclose=False) await resp.send_bytes(b'ask') msg = await resp.receive() assert msg.data == 'test' assert msg.type == aiohttp.WSMsgType.TEXT msg = await resp.close() assert resp.closed assert isinstance(resp.exception(), asyncio.TimeoutError)
async def test_receive_timeout_sock_read(aiohttp_client) -> None: async def handler(request): ws = web.WebSocketResponse() await ws.prepare(request) await ws.receive() await ws.close() return ws app = web.Application() app.router.add_route("GET", "/", handler) client = await aiohttp_client(app) receive_timeout = ClientWSTimeout(ws_receive=0.1) resp = await client.ws_connect("/", timeout=receive_timeout) with pytest.raises(asyncio.TimeoutError): await resp.receive(timeout=0.05) await resp.close()