def test_discard_other_option_when_disabled(self): ip_state = IPState( Interface.IPV6, {InterfaceIPv6.ENABLED: False, "foo_a": "foo_b"} ) assert ip_state.to_dict() == { InterfaceIP.ENABLED: False, }
def test_discard_address_when_dynamic(self, ip_ver_dynamic): ip_info = {} family, dynamic_options = ip_ver_dynamic ip_info.update(dynamic_options) expected_ip_info = deepcopy(ip_info) ip_info[InterfaceIP.ADDRESS] = (IPV4_ADDRESSES if family == InterfaceIPv4 else IPV6_ADDRESSES) ip_state = IPState(family, ip_info) assert ip_state.to_dict() == expected_ip_info
def test_remove_link_local_address(self, ip_ver): family, ip_info = ip_ver expected_ip_info = deepcopy(ip_info) if family == Interface.IPV6: ip_info[InterfaceIPv6.ADDRESS].append( { InterfaceIPv6.ADDRESS_IP: IPV6_LINK_LOCAL_ADDRESS1, InterfaceIPv6.ADDRESS_PREFIX_LENGTH: 64, } ) ip_state = IPState(Interface.IPV6, ip_info) ip_state.remove_link_local_address() assert ip_state.to_dict() == expected_ip_info
def test_default_dynamic_options_when_undefined(self, ip_ver_dynamic): ip_info = { InterfaceIP.ENABLED: True, } family, dynamic_options = ip_ver_dynamic ip_info.update(dynamic_options) ip_info.pop(InterfaceIP.AUTO_DNS) ip_info.pop(InterfaceIP.AUTO_ROUTES) ip_info.pop(InterfaceIP.AUTO_GATEWAY) expected_ip_info = deepcopy(ip_info) expected_ip_info.update(dynamic_options) ip_state = IPState(family, ip_info) assert ip_state.to_dict() == expected_ip_info
def test_sort_address(self, ip_ver): family, ip_info = ip_ver ip_state1 = IPState(family, ip_info) ip_info2 = deepcopy(ip_info) ip_info2[InterfaceIP.ADDRESS].reverse() ip_state2 = IPState(family, ip_info2) assert ip_state1.to_dict() == ip_state2.to_dict()
def test_ipv6_non_abbreviated_address(self): ip_state = IPState( Interface.IPV6, { InterfaceIPv6.ENABLED: True, InterfaceIPv6.ADDRESS: [{ InterfaceIPv6.ADDRESS_IP: IPV6_ADDRESS1_FULL, InterfaceIPv6.ADDRESS_PREFIX_LENGTH: 64, }], }, ) assert ip_state.to_dict() == { InterfaceIPv6.ENABLED: True, InterfaceIPv6.ADDRESS: [{ InterfaceIPv6.ADDRESS_IP: IPV6_ADDRESS1, InterfaceIPv6.ADDRESS_PREFIX_LENGTH: 64, }], }