def test_close(loop, ws_key, key_data): resp = mock.Mock() resp.status = 101 resp.headers = { hdrs.UPGRADE: hdrs.WEBSOCKET, hdrs.CONNECTION: hdrs.UPGRADE, hdrs.SEC_WEBSOCKET_ACCEPT: ws_key, } with mock.patch('aiohttp.client.WebSocketWriter') as WebSocketWriter: with mock.patch('aiohttp.client.os') as m_os: with mock.patch('aiohttp.client.ClientSession.get') as m_req: m_os.urandom.return_value = key_data m_req.return_value = helpers.create_future(loop) m_req.return_value.set_result(resp) writer = WebSocketWriter.return_value = mock.Mock() session = aiohttp.ClientSession(loop=loop) resp = yield from session.ws_connect('http://test.org') assert not resp.closed resp._reader.feed_data( aiohttp.WSMessage(aiohttp.WSMsgType.CLOSE, b'', b''), 0) res = yield from resp.close() writer.close.assert_called_with(1000, b'') assert resp.closed assert res assert resp.exception() is None # idempotent res = yield from resp.close() assert not res assert writer.close.call_count == 1 session.close()
def function971(arg1297, function539, function1058): var1080 = mock.Mock() var1080.status = 101 var1080.headers = { hdrs.UPGRADE: hdrs.WEBSOCKET, hdrs.CONNECTION: hdrs.UPGRADE, hdrs.SEC_WEBSOCKET_ACCEPT: ws_key, } with mock.patch('aiohttp.client.WebSocketWriter') as var3469: with mock.patch('aiohttp.client.os') as var2214: with mock.patch('aiohttp.client.ClientSession.get') as var1630: var2214.urandom.return_value = function1058 var1630.return_value = helpers.create_future(arg1297) var1630.return_value.set_result(var1080) var326 = var3469.return_value = mock.Mock() var4076 = aiohttp.ClientSession(loop=arg1297) var1080 = yield from var4076.ws_connect('http://test.org') assert (not var1080.closed) var1080._reader.feed_data( aiohttp.WSMessage(aiohttp.WSMsgType.CLOSE, b'', b''), 0) var3741 = yield from var1080.close() var326.close.assert_called_with(1000, b'') assert var1080.closed assert res assert (var1080.exception() is None) var3741 = yield from var1080.close() assert (not var3741) assert (var326.close.call_count == 1) var4076.close()
def test_close(self, m_req, m_os, WebSocketWriter): resp = mock.Mock() resp.status = 101 resp.headers = { hdrs.UPGRADE: hdrs.WEBSOCKET, hdrs.CONNECTION: hdrs.UPGRADE, hdrs.SEC_WEBSOCKET_ACCEPT: self.ws_key, } m_os.urandom.return_value = self.key_data m_req.return_value = helpers.create_future(self.loop) m_req.return_value.set_result(resp) writer = WebSocketWriter.return_value = mock.Mock() reader = resp.connection.reader.set_parser.return_value = mock.Mock() resp = self.loop.run_until_complete( aiohttp.ws_connect('http://test.org', loop=self.loop)) self.assertFalse(resp.closed) msg = aiohttp.WSMessage(aiohttp.MsgType.close, b'', b'') reader.read.return_value = helpers.create_future(self.loop) reader.read.return_value.set_result(msg) res = self.loop.run_until_complete(resp.close()) writer.close.assert_called_with(1000, b'') self.assertTrue(resp.closed) self.assertTrue(res) self.assertIsNone(resp.exception()) # idempotent res = self.loop.run_until_complete(resp.close()) self.assertFalse(res) self.assertEqual(writer.close.call_count, 1)
def add_websocket_aiohttp_message( self, websocket_mock, message, message_type: aiohttp.WSMsgType = aiohttp.WSMsgType.TEXT): msg = aiohttp.WSMessage(message_type, message, extra=None) self._incoming_websocket_aiohttp_queues[websocket_mock].put_nowait(msg) self._all_incoming_websocket_aiohttp_delivered_event[ websocket_mock].clear()
async def __anext__(self): try: res = aiohttp.WSMessage(aiohttp.WSMsgType.BINARY, next(self._iter), None) if self._hook_iteration: await self._hook_iteration(res) return res except StopIteration: self.closed = True raise StopAsyncIteration
async def __anext__(self): if len(self.events) == 0 or self.is_closed: raise StopAsyncIteration key = list(self.events.keys())[0] next_time = float(key) await asyncio.sleep(next_time - self.now) self.now = next_time data = self.events.pop(key) self.count += 1 return aiohttp.WSMessage(aiohttp.WSMsgType.BINARY, base64.b64decode(data["raw"]), None)
async def test_close(loop: Any, ws_key: Any, key_data: Any) -> None: resp = mock.Mock() resp.status = 101 resp.headers = { hdrs.UPGRADE: "websocket", hdrs.CONNECTION: "upgrade", hdrs.SEC_WEBSOCKET_ACCEPT: ws_key, } with mock.patch("aiohttp.client.WebSocketWriter") as WebSocketWriter: with mock.patch("aiohttp.client.os") as m_os: with mock.patch("aiohttp.client.ClientSession.request") as m_req: m_os.urandom.return_value = key_data m_req.return_value = loop.create_future() m_req.return_value.set_result(resp) writer = mock.Mock() WebSocketWriter.return_value = writer writer.close = make_mocked_coro() session = aiohttp.ClientSession() resp = await session.ws_connect("http://test.org") assert not resp.closed resp._reader.feed_data( aiohttp.WSMessage(aiohttp.WSMsgType.CLOSE, b"", b""), 0 ) res = await resp.close() writer.close.assert_called_with(1000, b"") assert resp.closed assert res assert resp.exception() is None # idempotent res = await resp.close() assert not res assert writer.close.call_count == 1 await session.close()