diff --git a/homeassistant/components/sonos/config_flow.py b/homeassistant/components/sonos/config_flow.py index b26f1bdf40b301d8f4ab229fd84c0f3689674206..59788d17a9267ee4521573f2da34c0a9b0b58177 100644 --- a/homeassistant/components/sonos/config_flow.py +++ b/homeassistant/components/sonos/config_flow.py @@ -5,7 +5,6 @@ import soco from homeassistant import config_entries from homeassistant.components import zeroconf -from homeassistant.const import CONF_HOST, CONF_NAME from homeassistant.core import HomeAssistant from homeassistant.data_entry_flow import FlowResult from homeassistant.helpers.config_entry_flow import DiscoveryFlowHandler @@ -31,13 +30,13 @@ class SonosDiscoveryFlowHandler(DiscoveryFlowHandler): self, discovery_info: zeroconf.ZeroconfServiceInfo ) -> FlowResult: """Handle a flow initialized by zeroconf.""" - hostname = discovery_info["hostname"] + hostname = discovery_info[zeroconf.ATTR_HOSTNAME] if hostname is None or not hostname.lower().startswith("sonos"): return self.async_abort(reason="not_sonos_device") await self.async_set_unique_id(self._domain, raise_on_progress=False) - host = discovery_info[CONF_HOST] - mdns_name = discovery_info[CONF_NAME] - properties = discovery_info["properties"] + host = discovery_info[zeroconf.ATTR_HOST] + mdns_name = discovery_info[zeroconf.ATTR_NAME] + properties = discovery_info[zeroconf.ATTR_PROPERTIES] boot_seqnum = properties.get("bootseq") model = properties.get("model") uid = hostname_to_uid(hostname) diff --git a/tests/components/sonos/test_config_flow.py b/tests/components/sonos/test_config_flow.py index 7d6fd02f51d122efc3ca8392328f30bd67405af6..4d4e0cc4cada0b31039b5b9a7d5a8e9840e077f3 100644 --- a/tests/components/sonos/test_config_flow.py +++ b/tests/components/sonos/test_config_flow.py @@ -4,6 +4,7 @@ from __future__ import annotations from unittest.mock import MagicMock, patch from homeassistant import config_entries, core +from homeassistant.components import zeroconf from homeassistant.components.sonos.const import DATA_SONOS_DISCOVERY_MANAGER, DOMAIN @@ -43,12 +44,12 @@ async def test_zeroconf_form(hass: core.HomeAssistant): result = await hass.config_entries.flow.async_init( DOMAIN, context={"source": config_entries.SOURCE_ZEROCONF}, - data={ - "host": "192.168.4.2", - "name": "Sonos-aaa@Living Room._sonos._tcp.local.", - "hostname": "Sonos-aaa", - "properties": {"bootseq": "1234"}, - }, + data=zeroconf.ZeroconfServiceInfo( + host="192.168.4.2", + name="Sonos-aaa@Living Room._sonos._tcp.local.", + hostname="Sonos-aaa", + properties={"bootseq": "1234"}, + ), ) assert result["type"] == "form" assert result["errors"] is None @@ -82,13 +83,13 @@ async def test_zeroconf_sonos_v1(hass: core.HomeAssistant): result = await hass.config_entries.flow.async_init( DOMAIN, context={"source": config_entries.SOURCE_ZEROCONF}, - data={ - "host": "192.168.1.107", - "port": 1443, - "hostname": "sonos5CAAFDE47AC8.local.", - "type": "_sonos._tcp.local.", - "name": "Sonos-5CAAFDE47AC8._sonos._tcp.local.", - "properties": { + data=zeroconf.ZeroconfServiceInfo( + host="192.168.1.107", + port=1443, + hostname="sonos5CAAFDE47AC8.local.", + type="_sonos._tcp.local.", + name="Sonos-5CAAFDE47AC8._sonos._tcp.local.", + properties={ "_raw": { "info": b"/api/v1/players/RINCON_5CAAFDE47AC801400/info", "vers": b"1", @@ -98,7 +99,7 @@ async def test_zeroconf_sonos_v1(hass: core.HomeAssistant): "vers": "1", "protovers": "1.18.9", }, - }, + ), ) assert result["type"] == "form" assert result["errors"] is None @@ -132,11 +133,11 @@ async def test_zeroconf_form_not_sonos(hass: core.HomeAssistant): result = await hass.config_entries.flow.async_init( DOMAIN, context={"source": config_entries.SOURCE_ZEROCONF}, - data={ - "host": "192.168.4.2", - "hostname": "not-aaa", - "properties": {"bootseq": "1234"}, - }, + data=zeroconf.ZeroconfServiceInfo( + host="192.168.4.2", + hostname="not-aaa", + properties={"bootseq": "1234"}, + ), ) assert result["type"] == "abort" assert result["reason"] == "not_sonos_device"