class TestBitsField(unittest.TestCase): def setUp(self): self.bits_map = Bitsmap() def test_build_bits(self): bits_field = BitsField('field',8,0x0a) self.assertEqual(bits_field.pack(self.bits_map, 1),9) self.assertEqual(self.bits_map.get_bits(1, 8) ,0x0a) def test_parse_bits(self): bits_field = BitsField('field',8) self.assertEqual(bits_field.parse(Bitsmap('\x0a\x0b'),9),17) self.assertEqual(bits_field._value,0x0b)
def test_pack_empty_addess(self): bits_map = Bitsmap() ip_address_field = IpAddressField('ip','0.0.0.0') self.assertEqual(ip_address_field.pack(bits_map, 1),33) self.assertEqual(bits_map.get_bits(1, 32) ,0x00000000)
def test_pack_IP_addess(self): bits_map = Bitsmap() ip_address_field = IpAddressField('ip','1.2.3.255') self.assertEqual(ip_address_field.pack(bits_map, 1),33) self.assertEqual(bits_map.get_bits(1, 32) ,0x010203ff)