From 540ba4b6e4b1347a8587e06677723d3592072b5c Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 28 Aug 2024 16:14:14 +0200 Subject: [PATCH] Test IPv4 and IPv6 DNS settings are preserved on auto Add tests which validate that IPv4 and IPv6 settings are preserved when in auto mode. This was the previous behavior, but also remains true today on API level. --- tests/dbus_service_mocks/network_connection_settings.py | 3 +++ tests/host/test_network.py | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/dbus_service_mocks/network_connection_settings.py b/tests/dbus_service_mocks/network_connection_settings.py index 4ee601f18..8324168b2 100644 --- a/tests/dbus_service_mocks/network_connection_settings.py +++ b/tests/dbus_service_mocks/network_connection_settings.py @@ -1,5 +1,6 @@ """Mock of Network Manager Connection Settings service.""" +from ipaddress import IPv6Address from dbus_fast import Variant from dbus_fast.service import PropertyAccess, dbus_property, signal @@ -54,6 +55,8 @@ SETTINGS_FIXTURE: dict[str, dict[str, Variant]] = { "method": Variant("s", "auto"), "route-data": Variant("aa{sv}", []), "routes": Variant("a(ayuayu)", []), + "dns": Variant("aay", [IPv6Address("2001:4860:4860::8888").packed]), + "dns-data": Variant("as", ["2001:4860:4860::8888"]), "addr-gen-mode": Variant("i", 0), }, "proxy": {}, diff --git a/tests/host/test_network.py b/tests/host/test_network.py index 4bb1a33b5..2f9c3407f 100644 --- a/tests/host/test_network.py +++ b/tests/host/test_network.py @@ -72,24 +72,24 @@ async def test_load( assert name_dict["eth0"].ipv4setting.method == InterfaceMethod.AUTO assert name_dict["eth0"].ipv4setting.address == [] assert name_dict["eth0"].ipv4setting.gateway is None - assert name_dict["eth0"].ipv4setting.nameservers == [] + assert name_dict["eth0"].ipv4setting.nameservers == [IPv4Address("192.168.2.1")] assert name_dict["eth0"].ipv6.gateway == IPv6Address("fe80::da58:d7ff:fe00:9c69") assert name_dict["eth0"].ipv6.ready is True assert name_dict["eth0"].ipv6setting.method == InterfaceMethod.AUTO assert name_dict["eth0"].ipv6setting.address == [] assert name_dict["eth0"].ipv6setting.gateway is None - assert name_dict["eth0"].ipv6setting.nameservers == [] + assert name_dict["eth0"].ipv6setting.nameservers == [IPv6Address('2001:4860:4860::8888')] assert "wlan0" in name_dict assert name_dict["wlan0"].enabled is False assert connection_settings_service.settings["ipv4"]["method"].value == "auto" assert "address-data" not in connection_settings_service.settings["ipv4"] assert "gateway" not in connection_settings_service.settings["ipv4"] - assert "dns" not in connection_settings_service.settings["ipv4"] + assert connection_settings_service.settings["ipv4"]["dns"] == Variant("au", [16951488]) assert connection_settings_service.settings["ipv6"]["method"].value == "auto" assert "address-data" not in connection_settings_service.settings["ipv6"] assert "gateway" not in connection_settings_service.settings["ipv6"] - assert "dns" not in connection_settings_service.settings["ipv6"] + assert connection_settings_service.settings["ipv6"]["dns"] == Variant("aay", [IPv6Address('2001:4860:4860::8888').packed]) assert network_manager_service.ActivateConnection.calls == [ (