def test_to_bytes(self): self.assertEqual( self.post_packet.to_bytes(), ''.join([ utils.int2bytes(0x0209), utils.gen_command_bytes_array('POST'), utils.int2bytes(2), self.post_packet.uuid, hashlib.sha256('{}').digest()[:8], '{}' ])) self.assertEqual( self.getdata_packet.to_bytes(), ''.join([ utils.int2bytes(0x0209), utils.gen_command_bytes_array('GETDATA'), utils.int2bytes(2), self.getdata_packet.uuid, hashlib.sha256('{}').digest()[:8], '{}' ])) self.assertEqual( self.data_packet.to_bytes(), ''.join([ utils.int2bytes(0x0209), utils.gen_command_bytes_array('DATA'), utils.int2bytes(2), self.data_packet.uuid, hashlib.sha256('{}').digest()[:8], '{}' ])) self.assertEqual( self.ack_packet.to_bytes(), ''.join([ utils.int2bytes(0x0209), utils.gen_command_bytes_array('ACK'), utils.int2bytes(2), self.ack_packet.uuid, hashlib.sha256('{}').digest()[:8], '{}' ]))
def test_gen_command_bytes_array(self): self.assertEqual(utils.gen_command_bytes_array('POST'), 'POST\0\0\0\0', "test gen command bytes array fail") self.assertEqual(utils.gen_command_bytes_array('GETDATA'), 'GETDATA\0', "test gen command bytes array fail") self.assertEqual(utils.gen_command_bytes_array('DATA'), 'DATA\0\0\0\0', "test gen command bytes array fail") self.assertEqual(utils.gen_command_bytes_array('ACK'), 'ACK\0\0\0\0\0', "test gen command bytes array fail")
def test_to_bytes(self): self.assertEqual(self.post_packet.to_bytes(), ''.join( [utils.int2bytes(0x0209), utils.gen_command_bytes_array('POST'), utils.int2bytes(2), self.post_packet.uuid, hashlib.sha256('{}').digest()[:8], '{}'])) self.assertEqual(self.getdata_packet.to_bytes(), ''.join( [utils.int2bytes(0x0209), utils.gen_command_bytes_array('GETDATA'), utils.int2bytes(2), self.getdata_packet.uuid, hashlib.sha256('{}').digest()[:8], '{}'])) self.assertEqual(self.data_packet.to_bytes(), ''.join( [utils.int2bytes(0x0209), utils.gen_command_bytes_array('DATA'), utils.int2bytes(2), self.data_packet.uuid, hashlib.sha256('{}').digest()[:8], '{}'])) self.assertEqual(self.ack_packet.to_bytes(), ''.join( [utils.int2bytes(0x0209), utils.gen_command_bytes_array('ACK'), utils.int2bytes(2), self.ack_packet.uuid, hashlib.sha256('{}').digest()[:8], '{}']))
def gen_packet(cls, command, payload): version = utils.int2bytes(0x0209) command = utils.gen_command_bytes_array(command) length = utils.int2bytes(len(payload)) packet_uuid = uuid.uuid4().bytes checksum = hashlib.sha256(payload).digest()[:8] return cls(version, command, length, packet_uuid, checksum, payload)