mirror of
https://github.com/home-assistant/core.git
synced 2025-07-14 16:57:10 +00:00
Use dataclass properties in bosch_shc discovery (#60559)
This commit is contained in:
parent
9b92787d59
commit
d537ec1d6f
@ -190,22 +190,12 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
return self.async_abort(reason="not_bosch_shc")
|
return self.async_abort(reason="not_bosch_shc")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
hosts = (
|
self.info = await self._get_info(discovery_info.host)
|
||||||
discovery_info[zeroconf.ATTR_HOST]
|
|
||||||
if isinstance(discovery_info[zeroconf.ATTR_HOST], list)
|
|
||||||
else [discovery_info[zeroconf.ATTR_HOST]]
|
|
||||||
)
|
|
||||||
for host in hosts:
|
|
||||||
if host.startswith("169."): # skip link local address
|
|
||||||
continue
|
|
||||||
self.info = await self._get_info(host)
|
|
||||||
self.host = host
|
|
||||||
if self.info is None or self.host is None:
|
|
||||||
return self.async_abort(reason="cannot_connect")
|
|
||||||
except SHCConnectionError:
|
except SHCConnectionError:
|
||||||
return self.async_abort(reason="cannot_connect")
|
return self.async_abort(reason="cannot_connect")
|
||||||
|
self.host = discovery_info.host
|
||||||
|
|
||||||
local_name = discovery_info[zeroconf.ATTR_HOSTNAME][:-1]
|
local_name = discovery_info.hostname[:-1]
|
||||||
node_name = local_name[: -len(".local")]
|
node_name = local_name[: -len(".local")]
|
||||||
|
|
||||||
await self.async_set_unique_id(self.info["unique_id"])
|
await self.async_set_unique_id(self.info["unique_id"])
|
||||||
|
@ -21,7 +21,7 @@ MOCK_SETTINGS = {
|
|||||||
"device": {"mac": "test-mac", "hostname": "test-host"},
|
"device": {"mac": "test-mac", "hostname": "test-host"},
|
||||||
}
|
}
|
||||||
DISCOVERY_INFO = zeroconf.ZeroconfServiceInfo(
|
DISCOVERY_INFO = zeroconf.ZeroconfServiceInfo(
|
||||||
host=["169.1.1.1", "1.1.1.1"],
|
host="1.1.1.1",
|
||||||
hostname="shc012345.local.",
|
hostname="shc012345.local.",
|
||||||
name="Bosch SHC [test-mac]._http._tcp.local.",
|
name="Bosch SHC [test-mac]._http._tcp.local.",
|
||||||
port=0,
|
port=0,
|
||||||
@ -527,29 +527,6 @@ async def test_zeroconf_cannot_connect(hass, mock_zeroconf):
|
|||||||
assert result["reason"] == "cannot_connect"
|
assert result["reason"] == "cannot_connect"
|
||||||
|
|
||||||
|
|
||||||
async def test_zeroconf_link_local(hass, mock_zeroconf):
|
|
||||||
"""Test we get the form."""
|
|
||||||
DISCOVERY_INFO_LINK_LOCAL = zeroconf.ZeroconfServiceInfo(
|
|
||||||
host=["169.1.1.1"],
|
|
||||||
hostname="shc012345.local.",
|
|
||||||
name="Bosch SHC [test-mac]._http._tcp.local.",
|
|
||||||
port=0,
|
|
||||||
properties={},
|
|
||||||
type="_http._tcp.local.",
|
|
||||||
)
|
|
||||||
|
|
||||||
with patch(
|
|
||||||
"boschshcpy.session.SHCSession.mdns_info", side_effect=SHCConnectionError
|
|
||||||
):
|
|
||||||
result = await hass.config_entries.flow.async_init(
|
|
||||||
DOMAIN,
|
|
||||||
data=DISCOVERY_INFO_LINK_LOCAL,
|
|
||||||
context={"source": config_entries.SOURCE_ZEROCONF},
|
|
||||||
)
|
|
||||||
assert result["type"] == "abort"
|
|
||||||
assert result["reason"] == "cannot_connect"
|
|
||||||
|
|
||||||
|
|
||||||
async def test_zeroconf_not_bosch_shc(hass, mock_zeroconf):
|
async def test_zeroconf_not_bosch_shc(hass, mock_zeroconf):
|
||||||
"""Test we filter out non-bosch_shc devices."""
|
"""Test we filter out non-bosch_shc devices."""
|
||||||
result = await hass.config_entries.flow.async_init(
|
result = await hass.config_entries.flow.async_init(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user