Beispiel #1
0
    def test_close_frame_no_payload(self):
        reader = asyncio.StreamReader(loop=self.loop)
        parser = WebSocketParser(reader)
        task = asyncio.Task(parser.parse_frame(reader), loop=self.loop)

        self.loop.call_soon(lambda: reader.feed_data(FrameBuilder.close()))

        frame = self.loop.run_until_complete(task)
        self.assertEqual(frame.opcode, OpCode.close)
Beispiel #2
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)
Beispiel #3
0
    def test_unmasking(self):
        data = b'\x81\x97\xea\x84N\xe4\xbf\xf7+\x96\xca\xa3*\x80\x8e\xa3n\x81\x84\xf0+\x96\x8f\xe0n\x87\x82\xe5:'
        reader = asyncio.StreamReader(loop=self.loop)
        parser = WebSocketParser(reader)
        task = asyncio.Task(parser.parse_frame(reader), loop=self.loop)
        self.loop.call_soon(lambda: reader.feed_data(data))

        frame = self.loop.run_until_complete(task)
        self.assertEqual(frame.fin, 1)
        self.assertEqual(frame.opcode, OpCode.text)
        self.assertEqual(frame.payload, b"User 'ddd' entered chat")