예제 #1
0
    def test_create_gzip(self):
        message_list = [create_message(b"v1", None),
                        create_message(b"v2", key=b'42')]
        msg = create_gzip_message(message_list)
        self.assertEqual(msg.magic, 0)
        self.assertEqual(msg.attributes, ATTRIBUTE_CODEC_MASK & CODEC_GZIP)
        self.assertEqual(msg.key, None)
        # Need to decode to check since gzipped payload is non-deterministic
        decoded = gzip_decode(msg.value)
        expect = b"".join([
            struct.pack(">q", 0),           # MsgSet offset
            struct.pack(">i", 16),          # MsgSet size
            struct.pack(">i", 1285512130),  # CRC
            struct.pack(">bb", 0, 0),       # Magic, flags
            struct.pack(">i", -1),          # -1 indicates a null key
            struct.pack(">i", 2),           # Msg length (bytes)
            b"v1",                          # Message contents

            struct.pack(">q", 0),           # MsgSet offset
            struct.pack(">i", 18),          # MsgSet size
            struct.pack(">i", 1929437987),  # CRC
            struct.pack(">bb", 0, 0),       # Magic, flags
            struct.pack(">i2s", 2, b'42'),  # Key is 2 bytes long, 42
            struct.pack(">i", 2),           # Msg length (bytes)
            b"v2",                          # Message contents
        ])

        self.assertEqual(decoded, expect)
예제 #2
0
    def test_create_gzip(self):
        message_list = [
            create_message(b"v1", None),
            create_message(b"v2", key=b'42')
        ]
        msg = create_gzip_message(message_list)
        self.assertEqual(msg.magic, 0)
        self.assertEqual(msg.attributes, ATTRIBUTE_CODEC_MASK & CODEC_GZIP)
        self.assertEqual(msg.key, None)
        # Need to decode to check since gzipped payload is non-deterministic
        decoded = gzip_decode(msg.value)
        expect = b"".join([
            struct.pack(">q", 0),  # MsgSet offset
            struct.pack(">i", 16),  # MsgSet size
            struct.pack(">i", 1285512130),  # CRC
            struct.pack(">bb", 0, 0),  # Magic, flags
            struct.pack(">i", -1),  # -1 indicates a null key
            struct.pack(">i", 2),  # Msg length (bytes)
            b"v1",  # Message contents
            struct.pack(">q", 0),  # MsgSet offset
            struct.pack(">i", 18),  # MsgSet size
            struct.pack(">i", 1929437987),  # CRC
            struct.pack(">bb", 0, 0),  # Magic, flags
            struct.pack(">i2s", 2, b'42'),  # Key is 2 bytes long, 42
            struct.pack(">i", 2),  # Msg length (bytes)
            b"v2",  # Message contents
        ])

        self.assertEqual(decoded, expect)
예제 #3
0
 def test_gzip(self):
     for i in range(100):
         s1 = os.urandom(100)
         s2 = gzip_decode(gzip_encode(s1))
         self.assertEqual(s1, s2)
예제 #4
0
 def test_gzip(self):
     for i in xrange(100):
         s1 = random_string(100)
         s2 = gzip_decode(gzip_encode(s1))
         self.assertEqual(s1, s2)
예제 #5
0
파일: test_codec.py 프로젝트: ciena/afkak
 def test_gzip(self):
     for _i in range(100):
         s1 = os.urandom(100)
         s2 = gzip_decode(gzip_encode(s1))
         self.assertEqual(s1, s2)