def mac_address(value): value = string_strict(value) parts = value.split(':') if len(parts) != 6: raise Invalid("MAC Address must consist of 6 : (colon) separated parts") parts_int = [] if any(len(part) != 2 for part in parts): raise Invalid("MAC Address must be format XX:XX:XX:XX:XX:XX") for part in parts: try: parts_int.append(int(part, 16)) except ValueError: raise Invalid("MAC Address parts must be hexadecimal values from 00 to FF") return core.MACAddress(*parts_int)
def test_as_hex(self): target = core.MACAddress(0xDE, 0xAD, 0xBE, 0xEF, 0x00, 0xFF) actual = target.as_hex assert actual.text == "0xDEADBEEF00FFULL"
def test_str(self, value): target = core.MACAddress(*(int(v, 16) for v in value.split(":"))) actual = str(target) assert actual == value
def test_init__invalid(self, value): with pytest.raises(ValueError, match="MAC Address must consist of 6 items"): core.MACAddress(*value.split(":"))
def test_init__valid(self, value): core.MACAddress(*value.split(":"))