コード例 #1
0
ファイル: test_websockets.py プロジェクト: levitar/Vase
    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)
コード例 #2
0
ファイル: test_websockets.py プロジェクト: levitar/Vase
    def test_reject_unmasked_frames(self):
        reader = asyncio.StreamReader(loop=self.loop)
        parser = WebSocketParser(reader)

        frame = FrameBuilder.close(masked=False)
        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)
コード例 #3
0
ファイル: test_websockets.py プロジェクト: levitar/Vase
    def test_control_frame_too_long(self):
        reader = asyncio.StreamReader(loop=self.loop)
        parser = WebSocketParser(reader)

        frame = FrameBuilder.close(1000, payload=' '*126)
        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)
コード例 #4
0
ファイル: test_websockets.py プロジェクト: levitar/Vase
    def test_invalid_opcode(self):
        reader = asyncio.StreamReader(loop=self.loop)
        parser = WebSocketParser(reader)

        frame = FrameBuilder.close()
        frame = b'\xff' + frame[1:]
        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)
コード例 #5
0
ファイル: test_websockets.py プロジェクト: levitar/Vase
    def test_close_frame(self, _build_method):
        data = b"Hello"
        code = 1002
        expected_data = struct.pack("!H", code) + data
        FrameBuilder.close(1002, payload=data)
        _build_method.assert_called_with(opcode=OpCode.close, fin=True, masked=True, payload=expected_data)
        FrameBuilder.close()
        _build_method.assert_called_with(opcode=OpCode.close, fin=True, masked=True, payload=b'')
        frame = FrameBuilder.close(payload=data)
        expected_payload = struct.pack('!H', 1000) + data
        _build_method.assert_called_with(opcode=OpCode.close, fin=True, masked=True, payload=expected_payload)

        frame = FrameBuilder.close(code, payload=data.decode('utf-8'))
        expected_payload = struct.pack('!H', code) + data
        _build_method.assert_called_with(opcode=OpCode.close, fin=True, masked=True, payload=expected_payload)
コード例 #6
0
ファイル: test_websockets.py プロジェクト: levitar/Vase
 def test_writer_close(self):
     transport = BytesIO()
     ww = WebSocketWriter(transport)
     ww.close()
     transport.seek(0)
     self.assertEqual(transport.read(), FrameBuilder.close(masked=False))