def parse_message(buf): nonlocal cur yield if cur == 0: cur = 1 return websocket.Message(websocket.OPCODE_TEXT, b'line1', b'') else: return websocket.Message(websocket.OPCODE_CLOSE, b'', b'')
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 = websocket.Message(websocket.MSG_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 receive(): return websocket.Message(websocket.MSG_BINARY, b'data', b'')
def receive(): return websocket.Message(websocket.MSG_TEXT, 'data', b'')