def create(cls, ip=None, mac=None, **kwargs): if ip is None: raise ValueError if ib_utils.determine_ip_version(ip) == 6: return IPv6(ip=ip, duid=ib_utils.generate_duid(mac), **kwargs) else: return IPv4(ip=ip, mac=mac, **kwargs)
def test_generate_duid(self): # DUID mac address starts from position 12 duid_mac_start_point = 12 mac = 'fa:16:3e:bd:ce:14' duid = utils.generate_duid(mac) # 10 octets for duid self.assertEqual(10, len(duid.split(':'))) self.assertEqual(True, (duid.find(mac) == duid_mac_start_point)) self.assertEqual(False, (duid[3:11] == "00:00:00"))
def mac(self, mac): """Set mac and duid fields To have common interface with FixedAddress accept mac address and set duid as a side effect. 'mac' was added to _shadow_fields to prevent sending it out over wapi. """ self._mac = mac if mac: self.duid = ib_utils.generate_duid(mac) elif not hasattr(self, 'duid'): self.duid = None
def test_generate_duid_with_invalid_mac(self): mac = 123 with self.assertRaises(ValueError): utils.generate_duid(mac)