mirror of
https://github.com/home-assistant/core.git
synced 2025-07-13 16:27:08 +00:00
Remove name key from config flow in Mikrotik (#78571)
This commit is contained in:
parent
a19a7e64d5
commit
b093c2840b
@ -8,7 +8,6 @@ import voluptuous as vol
|
|||||||
from homeassistant import config_entries
|
from homeassistant import config_entries
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONF_HOST,
|
CONF_HOST,
|
||||||
CONF_NAME,
|
|
||||||
CONF_PASSWORD,
|
CONF_PASSWORD,
|
||||||
CONF_PORT,
|
CONF_PORT,
|
||||||
CONF_USERNAME,
|
CONF_USERNAME,
|
||||||
@ -49,12 +48,7 @@ class MikrotikFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
"""Handle a flow initialized by the user."""
|
"""Handle a flow initialized by the user."""
|
||||||
errors = {}
|
errors = {}
|
||||||
if user_input is not None:
|
if user_input is not None:
|
||||||
for entry in self._async_current_entries():
|
self._async_abort_entries_match({CONF_HOST: user_input[CONF_HOST]})
|
||||||
if entry.data[CONF_HOST] == user_input[CONF_HOST]:
|
|
||||||
return self.async_abort(reason="already_configured")
|
|
||||||
if entry.data[CONF_NAME] == user_input[CONF_NAME]:
|
|
||||||
errors[CONF_NAME] = "name_exists"
|
|
||||||
break
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
await self.hass.async_add_executor_job(get_api, user_input)
|
await self.hass.async_add_executor_job(get_api, user_input)
|
||||||
@ -66,13 +60,12 @@ class MikrotikFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
|
|||||||
|
|
||||||
if not errors:
|
if not errors:
|
||||||
return self.async_create_entry(
|
return self.async_create_entry(
|
||||||
title=user_input[CONF_NAME], data=user_input
|
title=f"{DEFAULT_NAME} ({user_input[CONF_HOST]})", data=user_input
|
||||||
)
|
)
|
||||||
return self.async_show_form(
|
return self.async_show_form(
|
||||||
step_id="user",
|
step_id="user",
|
||||||
data_schema=vol.Schema(
|
data_schema=vol.Schema(
|
||||||
{
|
{
|
||||||
vol.Required(CONF_NAME, default=DEFAULT_NAME): str,
|
|
||||||
vol.Required(CONF_HOST): str,
|
vol.Required(CONF_HOST): str,
|
||||||
vol.Required(CONF_USERNAME): str,
|
vol.Required(CONF_USERNAME): str,
|
||||||
vol.Required(CONF_PASSWORD): str,
|
vol.Required(CONF_PASSWORD): str,
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
"""Test Mikrotik setup process."""
|
"""Test Mikrotik setup process."""
|
||||||
from datetime import timedelta
|
|
||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
import librouteros
|
import librouteros
|
||||||
@ -14,7 +13,6 @@ from homeassistant.components.mikrotik.const import (
|
|||||||
)
|
)
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONF_HOST,
|
CONF_HOST,
|
||||||
CONF_NAME,
|
|
||||||
CONF_PASSWORD,
|
CONF_PASSWORD,
|
||||||
CONF_PORT,
|
CONF_PORT,
|
||||||
CONF_USERNAME,
|
CONF_USERNAME,
|
||||||
@ -24,7 +22,6 @@ from homeassistant.const import (
|
|||||||
from tests.common import MockConfigEntry
|
from tests.common import MockConfigEntry
|
||||||
|
|
||||||
DEMO_USER_INPUT = {
|
DEMO_USER_INPUT = {
|
||||||
CONF_NAME: "Home router",
|
|
||||||
CONF_HOST: "0.0.0.0",
|
CONF_HOST: "0.0.0.0",
|
||||||
CONF_USERNAME: "username",
|
CONF_USERNAME: "username",
|
||||||
CONF_PASSWORD: "password",
|
CONF_PASSWORD: "password",
|
||||||
@ -32,20 +29,7 @@ DEMO_USER_INPUT = {
|
|||||||
CONF_VERIFY_SSL: False,
|
CONF_VERIFY_SSL: False,
|
||||||
}
|
}
|
||||||
|
|
||||||
DEMO_CONFIG = {
|
|
||||||
CONF_NAME: "Home router",
|
|
||||||
CONF_HOST: "0.0.0.0",
|
|
||||||
CONF_USERNAME: "username",
|
|
||||||
CONF_PASSWORD: "password",
|
|
||||||
CONF_PORT: 8278,
|
|
||||||
CONF_VERIFY_SSL: False,
|
|
||||||
CONF_FORCE_DHCP: False,
|
|
||||||
CONF_ARP_PING: False,
|
|
||||||
CONF_DETECTION_TIME: timedelta(seconds=30),
|
|
||||||
}
|
|
||||||
|
|
||||||
DEMO_CONFIG_ENTRY = {
|
DEMO_CONFIG_ENTRY = {
|
||||||
CONF_NAME: "Home router",
|
|
||||||
CONF_HOST: "0.0.0.0",
|
CONF_HOST: "0.0.0.0",
|
||||||
CONF_USERNAME: "username",
|
CONF_USERNAME: "username",
|
||||||
CONF_PASSWORD: "password",
|
CONF_PASSWORD: "password",
|
||||||
@ -97,8 +81,7 @@ async def test_flow_works(hass, api):
|
|||||||
)
|
)
|
||||||
|
|
||||||
assert result["type"] == data_entry_flow.FlowResultType.CREATE_ENTRY
|
assert result["type"] == data_entry_flow.FlowResultType.CREATE_ENTRY
|
||||||
assert result["title"] == "Home router"
|
assert result["title"] == "Mikrotik (0.0.0.0)"
|
||||||
assert result["data"][CONF_NAME] == "Home router"
|
|
||||||
assert result["data"][CONF_HOST] == "0.0.0.0"
|
assert result["data"][CONF_HOST] == "0.0.0.0"
|
||||||
assert result["data"][CONF_USERNAME] == "username"
|
assert result["data"][CONF_USERNAME] == "username"
|
||||||
assert result["data"][CONF_PASSWORD] == "password"
|
assert result["data"][CONF_PASSWORD] == "password"
|
||||||
@ -151,25 +134,6 @@ async def test_host_already_configured(hass, auth_error):
|
|||||||
assert result["reason"] == "already_configured"
|
assert result["reason"] == "already_configured"
|
||||||
|
|
||||||
|
|
||||||
async def test_name_exists(hass, api):
|
|
||||||
"""Test name already configured."""
|
|
||||||
|
|
||||||
entry = MockConfigEntry(domain=DOMAIN, data=DEMO_CONFIG_ENTRY)
|
|
||||||
entry.add_to_hass(hass)
|
|
||||||
user_input = DEMO_USER_INPUT.copy()
|
|
||||||
user_input[CONF_HOST] = "0.0.0.1"
|
|
||||||
|
|
||||||
result = await hass.config_entries.flow.async_init(
|
|
||||||
DOMAIN, context={"source": config_entries.SOURCE_USER}
|
|
||||||
)
|
|
||||||
result = await hass.config_entries.flow.async_configure(
|
|
||||||
result["flow_id"], user_input=user_input
|
|
||||||
)
|
|
||||||
|
|
||||||
assert result["type"] == "form"
|
|
||||||
assert result["errors"] == {CONF_NAME: "name_exists"}
|
|
||||||
|
|
||||||
|
|
||||||
async def test_connection_error(hass, conn_error):
|
async def test_connection_error(hass, conn_error):
|
||||||
"""Test error when connection is unsuccessful."""
|
"""Test error when connection is unsuccessful."""
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user