From 8d71595f3104d05e5b671379dd11728bdf2d7466 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Tue, 26 Apr 2022 06:25:11 +0200 Subject: [PATCH] Improve and fix Airzone config flow (#70474) --- .../components/airzone/config_flow.py | 18 ++++-------------- tests/components/airzone/test_config_flow.py | 8 ++++---- tests/components/airzone/util.py | 9 +-------- 3 files changed, 9 insertions(+), 26 deletions(-) diff --git a/homeassistant/components/airzone/config_flow.py b/homeassistant/components/airzone/config_flow.py index dded0e75d03..e758bfa3129 100644 --- a/homeassistant/components/airzone/config_flow.py +++ b/homeassistant/components/airzone/config_flow.py @@ -21,10 +21,8 @@ CONFIG_SCHEMA = vol.Schema( vol.Required(CONF_PORT, default=DEFAULT_PORT): int, } ) -SYSTEM_ID_SCHEMA = vol.Schema( +SYSTEM_ID_SCHEMA = CONFIG_SCHEMA.extend( { - vol.Required(CONF_HOST): str, - vol.Required(CONF_PORT, default=DEFAULT_PORT): int, vol.Required(CONF_ID, default=1): int, } ) @@ -41,22 +39,14 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): errors = {} if user_input is not None: - system_id = user_input.get(CONF_ID, DEFAULT_SYSTEM_ID) - - self._async_abort_entries_match( - { - CONF_HOST: user_input[CONF_HOST], - CONF_PORT: user_input[CONF_PORT], - CONF_ID: system_id, - } - ) + self._async_abort_entries_match(user_input) airzone = AirzoneLocalApi( aiohttp_client.async_get_clientsession(self.hass), ConnectionOptions( user_input[CONF_HOST], user_input[CONF_PORT], - system_id, + user_input.get(CONF_ID, DEFAULT_SYSTEM_ID), ), ) @@ -64,7 +54,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): await airzone.validate() except InvalidSystem: data_schema = SYSTEM_ID_SCHEMA - errors["base"] = "invalid_system_id" + errors[CONF_ID] = "invalid_system_id" except AirzoneError: errors["base"] = "cannot_connect" else: diff --git a/tests/components/airzone/test_config_flow.py b/tests/components/airzone/test_config_flow.py index 622c362a0d2..2d23f99aa47 100644 --- a/tests/components/airzone/test_config_flow.py +++ b/tests/components/airzone/test_config_flow.py @@ -16,7 +16,7 @@ from homeassistant.config_entries import SOURCE_USER, ConfigEntryState from homeassistant.const import CONF_HOST, CONF_ID, CONF_PORT from homeassistant.core import HomeAssistant -from .util import CONFIG, CONFIG_ID1, CONFIG_NO_ID, HVAC_MOCK +from .util import CONFIG, CONFIG_ID1, HVAC_MOCK from tests.common import MockConfigEntry @@ -46,7 +46,7 @@ async def test_form(hass: HomeAssistant) -> None: assert result["errors"] == {} result = await hass.config_entries.flow.async_configure( - result["flow_id"], CONFIG_NO_ID + result["flow_id"], CONFIG ) await hass.async_block_till_done() @@ -81,12 +81,12 @@ async def test_form_invalid_system_id(hass: HomeAssistant) -> None: side_effect=InvalidMethod, ): result = await hass.config_entries.flow.async_init( - DOMAIN, context={"source": SOURCE_USER}, data=CONFIG_NO_ID + DOMAIN, context={"source": SOURCE_USER}, data=CONFIG ) assert result["type"] == data_entry_flow.RESULT_TYPE_FORM assert result["step_id"] == SOURCE_USER - assert result["errors"] == {"base": "invalid_system_id"} + assert result["errors"] == {CONF_ID: "invalid_system_id"} mock_hvac.return_value = HVAC_MOCK[API_SYSTEMS][0] mock_hvac.side_effect = None diff --git a/tests/components/airzone/util.py b/tests/components/airzone/util.py index 8f7b8910c8c..a4c06187665 100644 --- a/tests/components/airzone/util.py +++ b/tests/components/airzone/util.py @@ -39,17 +39,10 @@ from tests.common import MockConfigEntry CONFIG = { CONF_HOST: "192.168.1.100", CONF_PORT: 3000, - CONF_ID: 0, -} - -CONFIG_NO_ID = { - CONF_HOST: CONFIG[CONF_HOST], - CONF_PORT: CONFIG[CONF_PORT], } CONFIG_ID1 = { - CONF_HOST: CONFIG[CONF_HOST], - CONF_PORT: CONFIG[CONF_PORT], + **CONFIG, CONF_ID: 1, }