From fa9465d0032efbf9dd6d18a6b0f4def7857b1add Mon Sep 17 00:00:00 2001
From: epenet <6771947+epenet@users.noreply.github.com>
Date: Sun, 21 Nov 2021 23:33:06 +0100
Subject: [PATCH] Use ZeroconfServiceInfo in system_bridge (#60102)

---
 .../components/system_bridge/config_flow.py   |  7 ++--
 .../system_bridge/test_config_flow.py         | 33 ++++++++++---------
 2 files changed, 21 insertions(+), 19 deletions(-)

diff --git a/homeassistant/components/system_bridge/config_flow.py b/homeassistant/components/system_bridge/config_flow.py
index 8d0b7a5dfff..ef3c1ccd2e4 100644
--- a/homeassistant/components/system_bridge/config_flow.py
+++ b/homeassistant/components/system_bridge/config_flow.py
@@ -151,8 +151,9 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
         self, discovery_info: zeroconf.ZeroconfServiceInfo
     ) -> FlowResult:
         """Handle zeroconf discovery."""
-        host = discovery_info["properties"].get("ip")
-        uuid = discovery_info["properties"].get("uuid")
+        properties = discovery_info[zeroconf.ATTR_PROPERTIES]
+        host = properties.get("ip")
+        uuid = properties.get("uuid")
 
         if host is None or uuid is None:
             return self.async_abort(reason="unknown")
@@ -164,7 +165,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
         self._name = host
         self._input = {
             CONF_HOST: host,
-            CONF_PORT: discovery_info["properties"].get("port"),
+            CONF_PORT: properties.get("port"),
         }
 
         return await self.async_step_authenticate()
diff --git a/tests/components/system_bridge/test_config_flow.py b/tests/components/system_bridge/test_config_flow.py
index 1b46bb45a6d..f8163eb98d9 100644
--- a/tests/components/system_bridge/test_config_flow.py
+++ b/tests/components/system_bridge/test_config_flow.py
@@ -5,6 +5,7 @@ from aiohttp.client_exceptions import ClientConnectionError
 from systembridge.exceptions import BridgeAuthenticationException
 
 from homeassistant import config_entries, data_entry_flow
+from homeassistant.components import zeroconf
 from homeassistant.components.system_bridge.const import DOMAIN
 from homeassistant.const import CONF_API_KEY, CONF_HOST, CONF_PORT
 
@@ -27,13 +28,13 @@ FIXTURE_ZEROCONF_INPUT = {
     CONF_PORT: "9170",
 }
 
-FIXTURE_ZEROCONF = {
-    CONF_HOST: "1.1.1.1",
-    CONF_PORT: 9170,
-    "hostname": "test-bridge.local.",
-    "type": "_system-bridge._udp.local.",
-    "name": "System Bridge - test-bridge._system-bridge._udp.local.",
-    "properties": {
+FIXTURE_ZEROCONF = zeroconf.ZeroconfServiceInfo(
+    host="1.1.1.1",
+    port=9170,
+    hostname="test-bridge.local.",
+    type="_system-bridge._udp.local.",
+    name="System Bridge - test-bridge._system-bridge._udp.local.",
+    properties={
         "address": "http://test-bridge:9170",
         "fqdn": "test-bridge",
         "host": "test-bridge",
@@ -42,18 +43,18 @@ FIXTURE_ZEROCONF = {
         "port": "9170",
         "uuid": FIXTURE_UUID,
     },
-}
+)
 
-FIXTURE_ZEROCONF_BAD = {
-    CONF_HOST: "1.1.1.1",
-    CONF_PORT: 9170,
-    "hostname": "test-bridge.local.",
-    "type": "_system-bridge._udp.local.",
-    "name": "System Bridge - test-bridge._system-bridge._udp.local.",
-    "properties": {
+FIXTURE_ZEROCONF_BAD = zeroconf.ZeroconfServiceInfo(
+    host="1.1.1.1",
+    port=9170,
+    hostname="test-bridge.local.",
+    type="_system-bridge._udp.local.",
+    name="System Bridge - test-bridge._system-bridge._udp.local.",
+    properties={
         "something": "bad",
     },
-}
+)
 
 
 FIXTURE_INFORMATION = {
-- 
GitLab