def test_main(self): t = time.time() p1 = Packet( 1, 2, "3", 4, t) p2 = Packet(src=1, dest=2, data="3", delivered_from=4, time=t) self.assertEqual(p1, p2) self.assertEqual(p1.src, 1) self.assertEqual(p1.dest, 2) self.assertEqual(p1.data, "3") self.assertEqual(p1.time, t) d1 = packet_to_datagram(p1, 30) self.assertEqual(d1, datagram(30, p1.src, p1.dest, p1.data + struct.pack("d", t))) d1_type, p1_ = datagram_to_packet(d1, 4) self.assertEqual(d1_type, d1.type) self.assertEqual(p1_, p1) self.assertEqual(p1_.time, p1.time)
def packet_to_datagram(packet, protocol): time_data = struct.pack("d", packet.time) return datagram(type=protocol, src=packet.src, dest=packet.dest, data=packet.data + time_data)