Use DhcpServiceInfo in somfy_mylink (#60099)

This commit is contained in:
epenet 2021-11-21 23:33:34 +01:00 committed by GitHub
parent 8f7f32d844
commit 4e1089cedb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 23 deletions

View File

@ -7,9 +7,10 @@ from somfy_mylink_synergy import SomfyMyLinkSynergy
import voluptuous as vol import voluptuous as vol
from homeassistant import config_entries, core, exceptions from homeassistant import config_entries, core, exceptions
from homeassistant.components.dhcp import HOSTNAME, IP_ADDRESS, MAC_ADDRESS from homeassistant.components import dhcp
from homeassistant.const import CONF_HOST, CONF_PORT from homeassistant.const import CONF_HOST, CONF_PORT
from homeassistant.core import callback from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult
from homeassistant.helpers.device_registry import format_mac from homeassistant.helpers.device_registry import format_mac
from .const import ( from .const import (
@ -58,18 +59,18 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
self.mac = None self.mac = None
self.ip_address = None self.ip_address = None
async def async_step_dhcp(self, discovery_info): async def async_step_dhcp(self, discovery_info: dhcp.DhcpServiceInfo) -> FlowResult:
"""Handle dhcp discovery.""" """Handle dhcp discovery."""
self._async_abort_entries_match({CONF_HOST: discovery_info[IP_ADDRESS]}) self._async_abort_entries_match({CONF_HOST: discovery_info[dhcp.IP_ADDRESS]})
formatted_mac = format_mac(discovery_info[MAC_ADDRESS]) formatted_mac = format_mac(discovery_info[dhcp.MAC_ADDRESS])
await self.async_set_unique_id(format_mac(formatted_mac)) await self.async_set_unique_id(format_mac(formatted_mac))
self._abort_if_unique_id_configured( self._abort_if_unique_id_configured(
updates={CONF_HOST: discovery_info[IP_ADDRESS]} updates={CONF_HOST: discovery_info[dhcp.IP_ADDRESS]}
) )
self.host = discovery_info[HOSTNAME] self.host = discovery_info[dhcp.HOSTNAME]
self.mac = formatted_mac self.mac = formatted_mac
self.ip_address = discovery_info[IP_ADDRESS] self.ip_address = discovery_info[dhcp.IP_ADDRESS]
self.context["title_placeholders"] = {"ip": self.ip_address, "mac": self.mac} self.context["title_placeholders"] = {"ip": self.ip_address, "mac": self.mac}
return await self.async_step_user() return await self.async_step_user()

View File

@ -5,7 +5,7 @@ from unittest.mock import patch
import pytest import pytest
from homeassistant import config_entries, data_entry_flow from homeassistant import config_entries, data_entry_flow
from homeassistant.components.dhcp import HOSTNAME, IP_ADDRESS, MAC_ADDRESS from homeassistant.components import dhcp
from homeassistant.components.somfy_mylink.const import ( from homeassistant.components.somfy_mylink.const import (
CONF_REVERSED_TARGET_IDS, CONF_REVERSED_TARGET_IDS,
CONF_SYSTEM_ID, CONF_SYSTEM_ID,
@ -252,11 +252,11 @@ async def test_form_user_already_configured_from_dhcp(hass):
result = await hass.config_entries.flow.async_init( result = await hass.config_entries.flow.async_init(
DOMAIN, DOMAIN,
context={"source": config_entries.SOURCE_DHCP}, context={"source": config_entries.SOURCE_DHCP},
data={ data=dhcp.DhcpServiceInfo(
IP_ADDRESS: "1.1.1.1", ip="1.1.1.1",
MAC_ADDRESS: "AA:BB:CC:DD:EE:FF", macaddress="AA:BB:CC:DD:EE:FF",
HOSTNAME: "somfy_eeff", hostname="somfy_eeff",
}, ),
) )
await hass.async_block_till_done() await hass.async_block_till_done()
@ -276,11 +276,11 @@ async def test_already_configured_with_ignored(hass):
result = await hass.config_entries.flow.async_init( result = await hass.config_entries.flow.async_init(
DOMAIN, DOMAIN,
context={"source": config_entries.SOURCE_DHCP}, context={"source": config_entries.SOURCE_DHCP},
data={ data=dhcp.DhcpServiceInfo(
IP_ADDRESS: "1.1.1.1", ip="1.1.1.1",
MAC_ADDRESS: "AA:BB:CC:DD:EE:FF", macaddress="AA:BB:CC:DD:EE:FF",
HOSTNAME: "somfy_eeff", hostname="somfy_eeff",
}, ),
) )
assert result["type"] == "form" assert result["type"] == "form"
@ -291,11 +291,11 @@ async def test_dhcp_discovery(hass):
result = await hass.config_entries.flow.async_init( result = await hass.config_entries.flow.async_init(
DOMAIN, DOMAIN,
context={"source": config_entries.SOURCE_DHCP}, context={"source": config_entries.SOURCE_DHCP},
data={ data=dhcp.DhcpServiceInfo(
IP_ADDRESS: "1.1.1.1", ip="1.1.1.1",
MAC_ADDRESS: "AA:BB:CC:DD:EE:FF", macaddress="AA:BB:CC:DD:EE:FF",
HOSTNAME: "somfy_eeff", hostname="somfy_eeff",
}, ),
) )
assert result["type"] == "form" assert result["type"] == "form"
assert result["errors"] == {} assert result["errors"] == {}