From cd10b597dd1f34fd044f76450e0ef706415010c0 Mon Sep 17 00:00:00 2001 From: Mike Degatano Date: Sat, 17 Sep 2022 10:24:56 -0400 Subject: [PATCH] Empty string in gateway returns none (#3873) --- supervisor/dbus/network/ip_configuration.py | 8 ++++++-- tests/dbus/network/test_ip_configuration.py | 8 ++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/supervisor/dbus/network/ip_configuration.py b/supervisor/dbus/network/ip_configuration.py index 643c822ba..f9b5c5674 100644 --- a/supervisor/dbus/network/ip_configuration.py +++ b/supervisor/dbus/network/ip_configuration.py @@ -39,9 +39,13 @@ class IpConfiguration(DBusInterfaceProxy): @property @dbus_property - def gateway(self) -> IPv4Address | IPv6Address: + def gateway(self) -> IPv4Address | IPv6Address | None: """Get gateway.""" - return ip_address(self.properties[DBUS_ATTR_GATEWAY]) + return ( + ip_address(self.properties[DBUS_ATTR_GATEWAY]) + if self.properties.get(DBUS_ATTR_GATEWAY) + else None + ) @property @dbus_property diff --git a/tests/dbus/network/test_ip_configuration.py b/tests/dbus/network/test_ip_configuration.py index 2051ccbe4..6daa0b488 100644 --- a/tests/dbus/network/test_ip_configuration.py +++ b/tests/dbus/network/test_ip_configuration.py @@ -40,3 +40,11 @@ async def test_ipv6_configuration(network_manager: NetworkManager): fire_property_change_signal(ipv6, {}, ["Gateway"]) await asyncio.sleep(0) assert ipv6.gateway == IPv6Address("fe80::da58:d7ff:fe00:9c69") + + +async def test_gateway_empty_string(network_manager: NetworkManager): + """Test empty string in gateway returns None.""" + ipv4 = network_manager.interfaces[TEST_INTERFACE].connection.ipv4 + fire_property_change_signal(ipv4, {"Gateway": ""}) + await asyncio.sleep(0) + assert ipv4.gateway is None