hass-core/tests/components/freedompro/test_config_flow.py
stefano055415 d8337cf98f
Add Freedompro (#46332)
Co-authored-by: Milan Meulemans <milan.meulemans@live.be>
Co-authored-by: Maciej Bieniek <bieniu@users.noreply.github.com>
Co-authored-by: Franck Nijhof <frenck@frenck.nl>
2021-06-30 13:21:06 +02:00

82 lines
2.3 KiB
Python

"""Define tests for the Freedompro config flow."""
from unittest.mock import patch
from homeassistant import data_entry_flow
from homeassistant.components.freedompro.const import DOMAIN
from homeassistant.config_entries import SOURCE_USER
from homeassistant.const import CONF_API_KEY
from tests.components.freedompro.const import DEVICES
VALID_CONFIG = {
CONF_API_KEY: "ksdjfgslkjdfksjdfksjgfksjd",
}
async def test_show_form(hass):
"""Test that the form is served with no input."""
result = await hass.config_entries.flow.async_init(
DOMAIN, context={"source": SOURCE_USER}
)
assert result["type"] == data_entry_flow.RESULT_TYPE_FORM
assert result["step_id"] == SOURCE_USER
async def test_invalid_auth(hass):
"""Test that errors are shown when API key is invalid."""
with patch(
"homeassistant.components.freedompro.config_flow.list",
return_value={
"state": False,
"code": -201,
},
):
result = await hass.config_entries.flow.async_init(
DOMAIN,
context={"source": SOURCE_USER},
data=VALID_CONFIG,
)
assert result["errors"] == {"base": "invalid_auth"}
async def test_connection_error(hass):
"""Test that errors are shown when API key is invalid."""
with patch(
"homeassistant.components.freedompro.config_flow.get_list",
return_value={
"state": False,
"code": -200,
},
):
result = await hass.config_entries.flow.async_init(
DOMAIN,
context={"source": SOURCE_USER},
data=VALID_CONFIG,
)
assert result["errors"] == {"base": "cannot_connect"}
async def test_create_entry(hass):
"""Test that the user step works."""
with patch(
"homeassistant.components.freedompro.config_flow.get_list",
return_value={
"state": True,
"devices": DEVICES,
},
):
result = await hass.config_entries.flow.async_init(
DOMAIN,
context={"source": SOURCE_USER},
data=VALID_CONFIG,
)
assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY
assert result["title"] == "Freedompro"
assert result["data"][CONF_API_KEY] == "ksdjfgslkjdfksjdfksjgfksjd"