def test_convert_URL_to_bin(self): bits_map = Bitsmap() dot_split_split_field = DotSplitField('URL','www.1234.com') self.assertEqual(dot_split_split_field.pack(bits_map, 1),(len('www.1234.com')+2)*8+1) self.assertEqual(bits_map.to_byte_stream(),\ '\x03\x77\x77\x77\x04\x31\x32\x33\x34\x03\x63\x6f\x6D\x00')
class TestBitsField(unittest.TestCase): def setUp(self): self.bits_map = Bitsmap() def test_build_bytes(self): bytes_field = ByteStreamField('field',8,'12345678') self.assertEqual(bytes_field.pack(self.bits_map, 1),8*8+1) self.assertEqual(self.bits_map.get_bytes_as_stream(1, 8),'12345678') def test_parse_bits(self): bytes_field = ByteStreamField('field',8) self.assertEqual(bytes_field.parse(Bitsmap('1234\x00\xc0\x00\x00\xff\xff'),1),8*8+1) self.assertEqual(bytes_field._value,'1234\x00\xc0\x00\x00')
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 setUp(self): self.bits_map = Bitsmap()
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)
def test_build_TLV_with_0_type_length(self): bits_map = Bitsmap() tlv_field = TlvField('tlv',0,1,0,0,'1234') self.assertEqual(tlv_field.pack(bits_map, 1),(1+4)*8+ 1) self.assertEqual(bits_map.to_byte_stream(),'\x04\x31\x32\x33\x34')
def test_build_TLV_with_offset(self): bits_map = Bitsmap() tlv_field = TlvField('tlv',1,1,2,0x01,'1234') self.assertEqual(tlv_field.pack(bits_map, 1),(1+1+4)*8+ 1) self.assertEqual(bits_map.to_byte_stream(),'\x01\x06\x31\x32\x33\x34')
def test_build_MAC_addess(self): bits_map = Bitsmap() mac_field = MacField('mac','4c:0f:6e:5e:b7:a1') self.assertEqual(mac_field.pack(bits_map, 1),6*8 + 1) bits_map.get_bytes_as_stream(1, 6) self.assertEqual(bits_map.get_bytes_as_stream(1, 6),'\x4c\x0f\x6e\x5e\xb7\xa1')