def test_raise_on_first_continuation(self): reader = asyncio.StreamReader(loop=self.loop) parser = WebSocketParser(reader) frame = FrameBuilder.continuation(" world!", fin=True) self.loop.call_soon(lambda: reader.feed_data(frame)) task = asyncio.Task(parser.get_message(), loop=self.loop) self.assertRaises(WebSocketFormatException, self.loop.run_until_complete, task)
def test_ping_frame_between_text_frames(self): reader = asyncio.StreamReader(loop=self.loop) parser = WebSocketParser(reader) first = FrameBuilder.text("Hello", fin=False) ping = FrameBuilder.ping() second = FrameBuilder.continuation(" world!", fin=True) frame = FrameBuilder.build(fin=False, opcode=OpCode.close, payload=b'', masked=True) self.loop.call_soon(lambda: reader.feed_data(b''.join((first, ping, second)))) task = asyncio.Task(parser.get_message(), loop=self.loop) message = self.loop.run_until_complete(task) self.assertEqual(message.opcode, OpCode.ping) task = asyncio.Task(parser.get_message(), loop=self.loop) message = self.loop.run_until_complete(task) self.assertEqual(message.opcode, OpCode.text) self.assertEqual(message.payload, 'Hello world!')