Exemplo n.º 1
0
 def load_obj(cls, code, data):
     if code == EXT_NODE_ID:
         return nodeid.NodeID(data)
     elif code == EXT_BINDATA:
         width = int_from_bytes(data[:4], 'little')
         return BinData.from_raw_data(width, data[4:])
     elif code == EXT_BIGINT:
         return bigint_decode(data)
     return msgpack.ExtType(code, data)
Exemplo n.º 2
0
 def test_from_raw_8(self):
     a = BinData.from_raw_data(8, b'\x01\x02\x03\x05\x08')
     self.assertEqual(a.width, 8)
     self.assertEqual(a.raw_data, b'\x01\x02\x03\x05\x08')
     self.assertEqual(a.octets_per_element(), 1)
     self.assertEqual(a.octets(), 5)
     self.assertEqual(len(a), 5)
     self.assertEqual(a[0], 1)
     self.assertEqual(a[4], 8)
     self.assertEqual(a[-1], 8)
     self.assertEqual(list(a), [1, 2, 3, 5, 8])
     self.assertEqual(a, a[:])
     self.assertEqual(str(a), '01 02 03 05 08')
     self.assertEqual(repr(a),
                      'BinData.from_spaced_hex(8, \'01 02 03 05 08\')')
Exemplo n.º 3
0
 def test_from_raw_crap(self):
     with self.assertRaises(TypeError):
         BinData.from_raw_data(9.0, b'\x12')
     with self.assertRaises(TypeError):
         BinData.from_raw_data(9, u'meh')
     with self.assertRaises(ValueError):
         BinData.from_raw_data(-8, b'\x12')
     with self.assertRaises(ValueError):
         BinData.from_raw_data(0, b'\x12')
     with self.assertRaises(ValueError):
         BinData.from_raw_data(9, b'\x12')
     BinData.from_raw_data(9, b'\x12\x01')
     with self.assertRaises(ValueError):
         BinData.from_raw_data(9, b'\x12\x02')
     BinData.from_raw_data(9, b'\xff\x01\xff\x01')
     with self.assertRaises(ValueError):
         BinData.from_raw_data(9, b'\xff\x02\xff\x01')
     with self.assertRaises(ValueError):
         BinData.from_raw_data(9, b'\xff\x01\xff\x02')
     with self.assertRaises(ValueError):
         BinData.from_raw_data(9, b'\xff\x01\xff\x80')
     BinData.from_raw_data(15, b'\xff\x7f\xff\x7f')
     with self.assertRaises(ValueError):
         BinData.from_raw_data(15, b'\xff\xff\xff\x7f')
     with self.assertRaises(ValueError):
         BinData.from_raw_data(15, b'\xff\x7f\xff\xff')