Use constants in acmeda config flow (#58590)

Co-authored-by: epenet <epenet@users.noreply.github.com>
This commit is contained in:
epenet 2021-10-28 18:09:28 +02:00 committed by GitHub
parent d27c91b9fe
commit d3bafce157
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 10 deletions

View file

@ -8,7 +8,8 @@ import aiopulse
import async_timeout
import voluptuous as vol
from homeassistant import config_entries
from homeassistant import config_entries, data_entry_flow
from homeassistant.const import CONF_HOST, CONF_ID
from .const import DOMAIN
@ -27,9 +28,9 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
if (
user_input is not None
and self.discovered_hubs is not None
and user_input["id"] in self.discovered_hubs
and user_input[CONF_ID] in self.discovered_hubs
):
return await self.async_create(self.discovered_hubs[user_input["id"]])
return await self.async_create(self.discovered_hubs[user_input[CONF_ID]])
# Already configured hosts
already_configured = {
@ -52,10 +53,10 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
self.discovered_hubs = {hub.id: hub for hub in hubs}
return self.async_show_form(
step_id="user",
step_id=data_entry_flow.STEP_ID_USER,
data_schema=vol.Schema(
{
vol.Required("id"): vol.In(
vol.Required(CONF_ID): vol.In(
{hub.id: f"{hub.id} {hub.host}" for hub in hubs}
)
}
@ -65,4 +66,4 @@ class AcmedaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
async def async_create(self, hub):
"""Create the Acmeda Hub entry."""
await self.async_set_unique_id(hub.id, raise_on_progress=False)
return self.async_create_entry(title=hub.id, data={"host": hub.host})
return self.async_create_entry(title=hub.id, data={CONF_HOST: hub.host})

View file

@ -5,7 +5,7 @@ import abc
import asyncio
from collections.abc import Iterable, Mapping
from types import MappingProxyType
from typing import Any, TypedDict
from typing import Any, Final, TypedDict
import uuid
import voluptuous as vol
@ -21,6 +21,8 @@ RESULT_TYPE_EXTERNAL_STEP_DONE = "external_done"
RESULT_TYPE_SHOW_PROGRESS = "progress"
RESULT_TYPE_SHOW_PROGRESS_DONE = "progress_done"
STEP_ID_USER: Final = "user"
# Event that is fired when a flow is progressed via external or progress source.
EVENT_DATA_ENTRY_FLOW_PROGRESSED = "data_entry_flow_progressed"

View file

@ -69,7 +69,7 @@ async def test_show_form_one_hub(hass, mock_hub_discover, mock_hub_run):
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
assert result["title"] == dummy_hub_1.id
assert result["result"].data == {
"host": DUMMY_HOST1,
CONF_HOST: DUMMY_HOST1,
}
# Check we performed the discovery
@ -92,7 +92,7 @@ async def test_show_form_two_hubs(hass, mock_hub_discover):
)
assert result["type"] == data_entry_flow.RESULT_TYPE_FORM
assert result["step_id"] == "user"
assert result["step_id"] == data_entry_flow.STEP_ID_USER
# Check we performed the discovery
assert len(mock_hub_discover.mock_calls) == 1
@ -120,7 +120,7 @@ async def test_create_second_entry(hass, mock_hub_run, mock_hub_discover):
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
assert result["title"] == dummy_hub_2.id
assert result["result"].data == {
"host": DUMMY_HOST2,
CONF_HOST: DUMMY_HOST2,
}