From b3d826f2e20d81f8fc94172e4d825d1c64b28805 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 28 May 2021 09:06:17 -0500 Subject: [PATCH] Fix samsungtv yaml import without configured name (#51204) --- .../components/samsungtv/config_flow.py | 2 +- .../components/samsungtv/test_config_flow.py | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/samsungtv/config_flow.py b/homeassistant/components/samsungtv/config_flow.py index b45f6c5670b..46800e1653b 100644 --- a/homeassistant/components/samsungtv/config_flow.py +++ b/homeassistant/components/samsungtv/config_flow.py @@ -173,7 +173,7 @@ class SamsungTVConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): ) except socket.gaierror as err: raise data_entry_flow.AbortFlow(RESULT_UNKNOWN_HOST) from err - self._name = user_input[CONF_NAME] + self._name = user_input.get(CONF_NAME, self._host) self._title = self._name async def async_step_user(self, user_input=None): diff --git a/tests/components/samsungtv/test_config_flow.py b/tests/components/samsungtv/test_config_flow.py index 04dffd31801..5b85ecf7048 100644 --- a/tests/components/samsungtv/test_config_flow.py +++ b/tests/components/samsungtv/test_config_flow.py @@ -54,6 +54,9 @@ MOCK_IMPORT_DATA = { CONF_NAME: "fake", CONF_PORT: 55000, } +MOCK_IMPORT_DATA_WITHOUT_NAME = { + CONF_HOST: "fake_host", +} MOCK_IMPORT_WSDATA = { CONF_HOST: "fake_host", CONF_NAME: "fake", @@ -509,6 +512,26 @@ async def test_import_legacy(hass: HomeAssistant): assert result["result"].unique_id is None +async def test_import_legacy_without_name(hass: HomeAssistant): + """Test importing from yaml without a name.""" + with patch( + "homeassistant.components.samsungtv.config_flow.socket.gethostbyname", + return_value="fake_host", + ): + result = await hass.config_entries.flow.async_init( + DOMAIN, + context={"source": config_entries.SOURCE_IMPORT}, + data=MOCK_IMPORT_DATA_WITHOUT_NAME, + ) + await hass.async_block_till_done() + assert result["type"] == "create_entry" + assert result["title"] == "fake_host" + assert result["data"][CONF_METHOD] == METHOD_LEGACY + assert result["data"][CONF_HOST] == "fake_host" + assert result["data"][CONF_MANUFACTURER] == "Samsung" + assert result["result"].unique_id is None + + async def test_import_websocket(hass: HomeAssistant): """Test importing from yaml with hostname.""" with patch(