def test_sync_group_request(self): req = protocol.SyncGroupRequest(b'dummygroup', 1, b'testmember1', [ protocol.MemberAssignment([(b"mytopic1", [3, 5, 7, 9]), (b"mytopic2", [3, 5, 7, 9])], member_id=b"a"), protocol.MemberAssignment([(b"mytopic1", [2, 4, 6, 8]), (b"mytopic2", [2, 4, 6, 8])], member_id=b"b") ]) msg = req.get_bytes() self.assertEqual( msg, bytearray( b'\x00\x00\x00\xc4\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x07pykafka' # header b'\x00\n' # len(group id) b'dummygroup' # group id b'\x00\x00\x00\x01' # generation id b'\x00\x0b' # len(member id) b'testmember1' # member id b'\x00\x00\x00\x02' # len(group assignment) b'\x00\x01' # len(member id) b'a' # member id b'\x00\x00\x00B' # len(member assignment) b'\x00\x01\x00\x00\x00\x02\x00\x08mytopic1\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x05\x00\x00\x00\x07\x00\x00\x00\t\x00\x08mytopic2\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x05\x00\x00\x00\x07\x00\x00\x00\t' # member assignment b'\x00\x01' # len(member id) b'b' # member id b'\x00\x00\x00B' # len(member assignment) b'\x00\x01\x00\x00\x00\x02\x00\x08mytopic1\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x06\x00\x00\x00\x08\x00\x08mytopic2\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x06\x00\x00\x00\x08' # member assignment ))
def test_member_assignment_construction(self): assignment = protocol.MemberAssignment([(b"mytopic1", [3, 5, 7, 9]), (b"mytopic2", [2, 4, 6, 8])]) msg = assignment.get_bytes() self.assertEqual( msg, bytearray( b'\x00\x01' # version b'\x00\x00\x00\x02' # len(partition assignment) b'\x00\x08' # len(topic) b'mytopic1' # topic b'\x00\x00\x00\x04' # len(partitions) b'\x00\x00\x00\x03' # partition b'\x00\x00\x00\x05' # partition b'\x00\x00\x00\x07' # partition b'\x00\x00\x00\t' # partition b'\x00\x08' # len(topic) b'mytopic2' # topic b'\x00\x00\x00\x04' # len(partitions) b'\x00\x00\x00\x02' # partition b'\x00\x00\x00\x04' # partition b'\x00\x00\x00\x06' # partition b'\x00\x00\x00\x08' # partition ) )