Ejemplo n.º 1
0
    def test_nonfin_control_frame(self):
        reader = asyncio.StreamReader(loop=self.loop)
        parser = WebSocketParser(reader)
        task = asyncio.Task(parser.parse_frame(reader), loop=self.loop)

        frame = FrameBuilder.build(fin=False, opcode=OpCode.close, payload=b'', masked=True)
        self.loop.call_soon(lambda: reader.feed_data(frame))

        self.assertRaises(WebSocketFormatException, self.loop.run_until_complete, task)
Ejemplo n.º 2
0
    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!')