diff --git a/homeassistant/components/samsungtv/config_flow.py b/homeassistant/components/samsungtv/config_flow.py index b7db8044a9d..0395fa3283b 100644 --- a/homeassistant/components/samsungtv/config_flow.py +++ b/homeassistant/components/samsungtv/config_flow.py @@ -6,6 +6,13 @@ from samsungctl.exceptions import AccessDenied, UnhandledResponse import voluptuous as vol from homeassistant import config_entries +from homeassistant.components.ssdp import ( + ATTR_SSDP_LOCATION, + ATTR_UPNP_FRIENDLY_NAME, + ATTR_UPNP_MANUFACTURER, + ATTR_UPNP_MODEL_NAME, + ATTR_UPNP_UDN, +) from homeassistant.const import ( CONF_BROADCAST_ADDRESS, CONF_HOST, @@ -16,17 +23,9 @@ from homeassistant.const import ( CONF_PORT, CONF_TIMEOUT, ) -from homeassistant.components.ssdp import ( - ATTR_HOST, - ATTR_NAME, - ATTR_MODEL_NAME, - ATTR_MANUFACTURER, - ATTR_UDN, -) from .const import CONF_MANUFACTURER, CONF_MODEL, DOMAIN, LOGGER, METHODS - DATA_SCHEMA = vol.Schema({vol.Required(CONF_HOST): str, vol.Required(CONF_NAME): str}) RESULT_AUTH_MISSING = "auth_missing" @@ -148,7 +147,7 @@ class SamsungTVConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): async def async_step_ssdp(self, user_input=None): """Handle a flow initialized by discovery.""" ip_address = await self.hass.async_add_executor_job( - _get_ip, user_input[ATTR_HOST] + _get_ip, user_input[ATTR_SSDP_LOCATION] ) if any( @@ -160,15 +159,15 @@ class SamsungTVConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): if _is_already_configured(self.hass, ip_address): return self.async_abort(reason="already_configured") - self._host = user_input[ATTR_HOST] + self._host = user_input[ATTR_SSDP_LOCATION] self._ip = self.context[CONF_IP_ADDRESS] = ip_address - self._manufacturer = user_input[ATTR_MANUFACTURER] - self._model = user_input[ATTR_MODEL_NAME] - self._name = user_input[ATTR_NAME] + self._manufacturer = user_input[ATTR_UPNP_MANUFACTURER] + self._model = user_input[ATTR_UPNP_MODEL_NAME] + self._name = user_input[ATTR_UPNP_FRIENDLY_NAME] if self._name.startswith("[TV]"): self._name = self._name[4:] self._title = f"{self._name} ({self._model})" - self._uuid = user_input[ATTR_UDN] + self._uuid = user_input[ATTR_UPNP_UDN] if self._uuid.startswith("uuid:"): self._uuid = self._uuid[5:] diff --git a/tests/components/samsungtv/test_config_flow.py b/tests/components/samsungtv/test_config_flow.py index 7c22fc0b138..db705165808 100644 --- a/tests/components/samsungtv/test_config_flow.py +++ b/tests/components/samsungtv/test_config_flow.py @@ -1,8 +1,9 @@ """Tests for Samsung TV config flow.""" +from unittest.mock import patch + from asynctest import mock import pytest from samsungctl.exceptions import AccessDenied, UnhandledResponse -from unittest.mock import patch from homeassistant.components.samsungtv.const import ( CONF_MANUFACTURER, @@ -10,28 +11,28 @@ from homeassistant.components.samsungtv.const import ( DOMAIN, ) from homeassistant.components.ssdp import ( - ATTR_HOST, - ATTR_NAME, - ATTR_MODEL_NAME, - ATTR_MANUFACTURER, - ATTR_UDN, + ATTR_SSDP_LOCATION, + ATTR_UPNP_FRIENDLY_NAME, + ATTR_UPNP_MANUFACTURER, + ATTR_UPNP_MODEL_NAME, + ATTR_UPNP_UDN, ) from homeassistant.const import CONF_HOST, CONF_ID, CONF_NAME MOCK_USER_DATA = {CONF_HOST: "fake_host", CONF_NAME: "fake_name"} MOCK_SSDP_DATA = { - ATTR_HOST: "fake_host", - ATTR_NAME: "[TV]fake_name", - ATTR_MANUFACTURER: "fake_manufacturer", - ATTR_MODEL_NAME: "fake_model", - ATTR_UDN: "uuid:fake_uuid", + ATTR_SSDP_LOCATION: "fake_host", + ATTR_UPNP_FRIENDLY_NAME: "[TV]fake_name", + ATTR_UPNP_MANUFACTURER: "fake_manufacturer", + ATTR_UPNP_MODEL_NAME: "fake_model", + ATTR_UPNP_UDN: "uuid:fake_uuid", } MOCK_SSDP_DATA_NOPREFIX = { - ATTR_HOST: "fake2_host", - ATTR_NAME: "fake2_name", - ATTR_MANUFACTURER: "fake2_manufacturer", - ATTR_MODEL_NAME: "fake2_model", - ATTR_UDN: "fake2_uuid", + ATTR_SSDP_LOCATION: "fake2_host", + ATTR_UPNP_FRIENDLY_NAME: "fake2_name", + ATTR_UPNP_MANUFACTURER: "fake2_manufacturer", + ATTR_UPNP_MODEL_NAME: "fake2_model", + ATTR_UPNP_UDN: "fake2_uuid", }