def test_collate_packet(self): pkt = CorrPacket() # Make sure a correctly formatted packet is accepted self.cb.collate_packet(pkt) # Make sure bad packets are rejected pkt.instrument_id = 5 self.assertRaises(ValueError, self.cb.collate_packet, pkt)
def test_unpack_data(self): cp = CorrPacket() cp.unpack_header(PACKET) cp.unpack_data(PACKET[cp.header_size():]) print "Packet data is ", len(cp.get_data()), "bytes long" data = struct.unpack('II', cp.get_data()) # use native endianess self.assertEqual(data, OPTS['data'])
def test_setattributes(self): cp = CorrPacket() cp.n_options = 7 self.assertEqual(cp.n_options, 7) cp.instrument_id = 7 self.assertEqual(cp.instrument_id, 7) cp.instance_id = 7 self.assertEqual(cp.instance_id, 7) cp.engine_id = 7 self.assertEqual(cp.engine_id, 7) cp.timestamp = 7 self.assertEqual(cp.timestamp, 7) cp.heap_off = 7 self.assertEqual(cp.heap_off, 7) cp.currerr = 7 self.assertEqual(cp.currerr, 7) cp.set_data('abcdefgh') self.assertEqual(cp.get_data(), 'abcdefgh')
def test_size(self): cp = CorrPacket() self.assertEqual(cp.size(), HEADER_SIZE)
def setUp(self): self.cp = CorrPacket() self.cp.unpack_header(PACKET)
def test_pack(self): cp = CorrPacket() cp.unpack(PACKET) data = cp.pack() print "Packlen:", len(data), "Origlen:", len(PACKET) self.assertEqual(data, PACKET)
def test_pack_data(self): cp = CorrPacket() cp.unpack(PACKET) data = cp.pack_data() self.assertEqual(data, PACKET[cp.header_size():])
def test_unpack(self): cp = CorrPacket() cp.unpack(PACKET) for k in OPTS: if not k in ['data']: self.assertEqual(getattr(cp, k), OPTS[k]) self.assertRaises(ValueError, cp.unpack, BAD_PACKET1)
def test_unpack_header(self): cp = CorrPacket() cp.unpack_header(PACKET) for k in OPTS: if not k in ['data']: self.assertEqual(getattr(cp, k), OPTS[k])
'engine_id': 59, 'timestamp': 64, 'heapoff': 128, 'packetlen': 8, 'packetcount': 1, 'currerr': 0, 'heaplen': 8, 'data': (55, 22), } PACKET = struct.pack('>HHHH', PKT_ID, 3, 0, OPTS['n_options']) + \ struct.pack('>HHHH', 50, OPTS['instrument_id'], OPTS['instance_id'], OPTS['engine_id']) + \ struct.pack('>HHI', 3, 0, OPTS['timestamp']) + \ struct.pack('>HHI', 52, 0, OPTS['currerr']) + \ struct.pack('>H', 51) + bitstring.BitString(uintbe=OPTS['packetlen'], length=24).bytes + \ bitstring.BitString(uintbe=OPTS['packetlen'], length=24).bytes + \ struct.pack('>HHI', 5, 0, OPTS['heapoff']) + \ struct.pack('>HHI', 53, 0, 0) + \ struct.pack('>II', *OPTS['data']) cp = CorrPacket() cp.unpack_header(PACKET) cp.unpack_data(PACKET[cp.header_size():], len(PACKET[cp.header_size():])) print "header:", cp.header_size() print "data:", len(cp.get_data()) print "data size:", cp.size() print "instance_id", cp.instance_id print "instrument_id", cp.instrument_id print "engine_id", cp.engine_id print struct.unpack('>II', cp.get_data())