Met, check for existing location (#26400)
This commit is contained in:
parent
d4905477b8
commit
93e4cd6bb2
4 changed files with 18 additions and 8 deletions
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"config": {
|
||||
"error": {
|
||||
"name_exists": "Name already exists"
|
||||
"name_exists": "Location already exists"
|
||||
},
|
||||
"step": {
|
||||
"user": {
|
||||
|
|
|
@ -12,9 +12,15 @@ from .const import DOMAIN, HOME_LOCATION_NAME, CONF_TRACK_HOME
|
|||
@callback
|
||||
def configured_instances(hass):
|
||||
"""Return a set of configured SimpliSafe instances."""
|
||||
return set(
|
||||
entry.data[CONF_NAME] for entry in hass.config_entries.async_entries(DOMAIN)
|
||||
)
|
||||
entites = []
|
||||
for entry in hass.config_entries.async_entries(DOMAIN):
|
||||
if entry.data.get("track_home"):
|
||||
entites.append("home")
|
||||
continue
|
||||
entites.append(
|
||||
f"{entry.data.get(CONF_LATITUDE)}-{entry.data.get(CONF_LONGITUDE)}"
|
||||
)
|
||||
return set(entites)
|
||||
|
||||
|
||||
class MetFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
||||
|
@ -32,11 +38,13 @@ class MetFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||
self._errors = {}
|
||||
|
||||
if user_input is not None:
|
||||
if user_input[CONF_NAME] not in configured_instances(self.hass):
|
||||
if (
|
||||
f"{user_input.get(CONF_LATITUDE)}-{user_input.get(CONF_LONGITUDE)}"
|
||||
not in configured_instances(self.hass)
|
||||
):
|
||||
return self.async_create_entry(
|
||||
title=user_input[CONF_NAME], data=user_input
|
||||
)
|
||||
|
||||
self._errors[CONF_NAME] = "name_exists"
|
||||
|
||||
return await self._show_config_form(
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
}
|
||||
},
|
||||
"error": {
|
||||
"name_exists": "Name already exists"
|
||||
"name_exists": "Location already exists"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -102,7 +102,7 @@ async def test_flow_entry_created_from_user_input():
|
|||
async def test_flow_entry_config_entry_already_exists():
|
||||
"""Test that create data from user input and config_entry already exists.
|
||||
|
||||
Test when the form should show when user puts existing name
|
||||
Test when the form should show when user puts existing location
|
||||
in the config gui. Then the form should show with error
|
||||
"""
|
||||
hass = Mock()
|
||||
|
@ -112,6 +112,8 @@ async def test_flow_entry_config_entry_already_exists():
|
|||
|
||||
first_entry = MockConfigEntry(domain="met")
|
||||
first_entry.data["name"] = "home"
|
||||
first_entry.data[CONF_LONGITUDE] = "0"
|
||||
first_entry.data[CONF_LATITUDE] = "0"
|
||||
first_entry.add_to_hass(hass)
|
||||
|
||||
test_data = {
|
||||
|
|
Loading…
Add table
Reference in a new issue