示例#1
0
    def test_encode_decode_fragmented_binary_frame(self):
        frame1 = Frame(False, OP_TEXT, b"tea ")
        frame2 = Frame(True, OP_CONT, b"time")

        enc_frame1 = self.extension.encode(frame1)
        enc_frame2 = self.extension.encode(frame2)

        self.assertEqual(
            enc_frame1, frame1._replace(rsv1=True, data=b"*IMT\x00\x00\x00\x00\xff\xff")
        )
        self.assertEqual(
            enc_frame2, frame2._replace(rsv1=True, data=b"*\xc9\xccM\x05\x00")
        )

        dec_frame1 = self.extension.decode(enc_frame1)
        dec_frame2 = self.extension.decode(enc_frame2)

        self.assertEqual(dec_frame1, frame1)
        self.assertEqual(dec_frame2, frame2)
示例#2
0
    def test_encode_decode_binary_frame(self):
        frame = Frame(True, OP_BINARY, b"tea")

        enc_frame = self.extension.encode(frame)

        self.assertEqual(enc_frame,
                         frame._replace(rsv1=True, data=b"*IM\x04\x00"))

        dec_frame = self.extension.decode(enc_frame)

        self.assertEqual(dec_frame, frame)
示例#3
0
    def test_encode_decode_text_frame(self):
        frame = Frame(True, OP_TEXT, "café".encode("utf-8"))

        enc_frame = self.extension.encode(frame)

        self.assertEqual(enc_frame,
                         frame._replace(rsv1=True, data=b"JNL;\xbc\x12\x00"))

        dec_frame = self.extension.decode(enc_frame)

        self.assertEqual(dec_frame, frame)
示例#4
0
    def test_compress_settings(self):
        # Configure an extension so that no compression actually occurs.
        extension = PerMessageDeflate(False, False, 15, 15, {"level": 0})

        frame = Frame(True, OP_TEXT, "café".encode("utf-8"))

        enc_frame = extension.encode(frame)

        self.assertEqual(
            enc_frame,
            frame._replace(
                rsv1=True, data=b"\x00\x05\x00\xfa\xffcaf\xc3\xa9\x00"  # not compressed
            ),
        )