def test_request(self): message = self.test_messages[0] req = protocol.ProduceRequest() req.add_message(message, b'test', 0) msg = req.get_bytes() self.assertEqual( msg, bytearray( b"\x00\x00\x00a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07pykafka" # header b'\x00\x01' # required acks b'\x00\x00\'\x10' # timeout b'\x00\x00\x00\x01' # len(topics) b'\x00\x04' # len(topic name) b'test' # topic name b'\x00\x00\x00\x01' # len (partitions) b'\x00\x00\x00\x00' # partition b'\x00\x00\x004' # message set size b'\xff\xff\xff\xff\xff\xff\xff\xff' # offset b'\x00\x00\x00(' # message size b'\x0e\x8a\x19O' # crc b'\x00' # magic byte b'\x00' # attributes b'\x00\x00\x00\x04' # len(key) b'asdf' # key b'\x00\x00\x00\x16' # len(value) b"this is a test message" # value ))
def test_request_message_timestamp(self): message = self.test_messages[1] req = protocol.ProduceRequest() req.add_message(message, b'test', 0) msg = req.get_bytes() self.assertEqual( msg, bytearray( b'\x00\x00\x00i\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07pykafka' # header b'\x00\x01' # required acks b"\x00\x00\'\x10" # timeout b"\x00\x00\x00\x01" # len(topics) b"\x00\x04" # len(topic name) b"test" # topic name b"\x00\x00\x00\x01" # len(partitions) b"\x00\x00\x00\x00" # partition b"\x00\x00\x00<" # message set size b"\xff\xff\xff\xff\xff\xff\xff\xff" # offset b"\x00\x00\x000" # message size b"Z\x92\x80\t" # crc b"\x01" # magic byte (protocol version) b"\x00" # attributes b"\x00\x00\x00\x00Y?\x04\x94" # timestamp b"\x00\x00\x00\x04" # len(key) b"asdf" # key b"\x00\x00\x00\x16" # len(value) b"this is a test message" # value ))
def test_request(self): message = self.test_messages[0] req = protocol.ProduceRequest() req.add_message(message, 'test', 0) msg = req.get_bytes() self.assertEqual( msg, bytearray(b"\x00\x00\x00a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x07pykafka\x00\x01\x00\x00\'\x10\x00\x00\x00\x01\x00\x04test\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x004\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00(\x0e\x8a\x19O\x00\x00\x00\x00\x00\x04asdf\x00\x00\x00\x16this is a test message") )
def test_snappy_compression(self): req = protocol.ProduceRequest(compression_type=CompressionType.SNAPPY) [req.add_message(m, b'test_snappy', 0) for m in self.test_messages] msg = req.get_bytes() self.assertEqual(len(msg), 212) # this isn't a good test
def test_gzip_compression(self): req = protocol.ProduceRequest(compression_type=CompressionType.GZIP) [req.add_message(m, b'test_gzip', 0) for m in self.test_messages] msg = req.get_bytes() self.assertEqual(len(msg), 207) # this isn't a good test