diff --git a/tests/components/adguard/test_config_flow.py b/tests/components/adguard/test_config_flow.py index 872f9e5807e..75d138f400c 100644 --- a/tests/components/adguard/test_config_flow.py +++ b/tests/components/adguard/test_config_flow.py @@ -2,8 +2,8 @@ import aiohttp from homeassistant import config_entries, data_entry_flow -from homeassistant.components.adguard import config_flow from homeassistant.components.adguard.const import DOMAIN +from homeassistant.config_entries import SOURCE_USER from homeassistant.const import ( CONF_HOST, CONF_PASSWORD, @@ -30,9 +30,9 @@ FIXTURE_USER_INPUT = { async def test_show_authenticate_form(hass: HomeAssistant) -> None: """Test that the setup form is served.""" - flow = config_flow.AdGuardHomeFlowHandler() - flow.hass = hass - result = await flow.async_step_user(user_input=None) + 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"] == "user" @@ -49,13 +49,14 @@ async def test_connection_error( exc=aiohttp.ClientError, ) - flow = config_flow.AdGuardHomeFlowHandler() - flow.hass = hass - result = await flow.async_step_user(user_input=FIXTURE_USER_INPUT) + result = await hass.config_entries.flow.async_init( + DOMAIN, context={"source": SOURCE_USER}, data=FIXTURE_USER_INPUT + ) - assert result["type"] == data_entry_flow.RESULT_TYPE_FORM - assert result["step_id"] == "user" - assert result["errors"] == {"base": "cannot_connect"} + assert result + assert result.get("type") == data_entry_flow.RESULT_TYPE_FORM + assert result.get("step_id") == "user" + assert result.get("errors") == {"base": "cannot_connect"} async def test_full_flow_implementation( @@ -70,21 +71,30 @@ async def test_full_flow_implementation( headers={"Content-Type": CONTENT_TYPE_JSON}, ) - flow = config_flow.AdGuardHomeFlowHandler() - flow.hass = hass - result = await flow.async_step_user(user_input=None) - assert result["type"] == data_entry_flow.RESULT_TYPE_FORM - assert result["step_id"] == "user" + result = await hass.config_entries.flow.async_init( + DOMAIN, context={"source": SOURCE_USER} + ) - result = await flow.async_step_user(user_input=FIXTURE_USER_INPUT) - assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY - assert result["title"] == FIXTURE_USER_INPUT[CONF_HOST] - assert result["data"][CONF_HOST] == FIXTURE_USER_INPUT[CONF_HOST] - assert result["data"][CONF_PASSWORD] == FIXTURE_USER_INPUT[CONF_PASSWORD] - assert result["data"][CONF_PORT] == FIXTURE_USER_INPUT[CONF_PORT] - assert result["data"][CONF_SSL] == FIXTURE_USER_INPUT[CONF_SSL] - assert result["data"][CONF_USERNAME] == FIXTURE_USER_INPUT[CONF_USERNAME] - assert result["data"][CONF_VERIFY_SSL] == FIXTURE_USER_INPUT[CONF_VERIFY_SSL] + assert result + assert result.get("flow_id") + assert result.get("type") == data_entry_flow.RESULT_TYPE_FORM + assert result.get("step_id") == "user" + + result2 = await hass.config_entries.flow.async_configure( + result["flow_id"], user_input=FIXTURE_USER_INPUT + ) + assert result2 + assert result2.get("type") == data_entry_flow.RESULT_TYPE_CREATE_ENTRY + assert result2.get("title") == FIXTURE_USER_INPUT[CONF_HOST] + + data = result2.get("data") + assert data + assert data[CONF_HOST] == FIXTURE_USER_INPUT[CONF_HOST] + assert data[CONF_PASSWORD] == FIXTURE_USER_INPUT[CONF_PASSWORD] + assert data[CONF_PORT] == FIXTURE_USER_INPUT[CONF_PORT] + assert data[CONF_SSL] == FIXTURE_USER_INPUT[CONF_SSL] + assert data[CONF_USERNAME] == FIXTURE_USER_INPUT[CONF_USERNAME] + assert data[CONF_VERIFY_SSL] == FIXTURE_USER_INPUT[CONF_VERIFY_SSL] async def test_integration_already_exists(hass: HomeAssistant) -> None: @@ -98,8 +108,9 @@ async def test_integration_already_exists(hass: HomeAssistant) -> None: data={"host": "mock-adguard", "port": "3000"}, context={"source": config_entries.SOURCE_USER}, ) - assert result["type"] == "abort" - assert result["reason"] == "already_configured" + assert result + assert result.get("type") == "abort" + assert result.get("reason") == "already_configured" async def test_hassio_already_configured(hass: HomeAssistant) -> None: @@ -113,8 +124,9 @@ async def test_hassio_already_configured(hass: HomeAssistant) -> None: data={"addon": "AdGuard Home Addon", "host": "mock-adguard", "port": "3000"}, context={"source": config_entries.SOURCE_HASSIO}, ) - assert result["type"] == data_entry_flow.RESULT_TYPE_ABORT - assert result["reason"] == "already_configured" + assert result + assert result.get("type") == data_entry_flow.RESULT_TYPE_ABORT + assert result.get("reason") == "already_configured" async def test_hassio_ignored(hass: HomeAssistant) -> None: @@ -128,11 +140,9 @@ async def test_hassio_ignored(hass: HomeAssistant) -> None: data={"addon": "AdGuard Home Addon", "host": "mock-adguard", "port": "3000"}, context={"source": config_entries.SOURCE_HASSIO}, ) - - assert "type" in result - assert result["type"] == data_entry_flow.RESULT_TYPE_ABORT - assert "reason" in result - assert result["reason"] == "already_configured" + assert result + assert result.get("type") == data_entry_flow.RESULT_TYPE_ABORT + assert result.get("reason") == "already_configured" async def test_hassio_confirm( @@ -150,19 +160,25 @@ async def test_hassio_confirm( data={"addon": "AdGuard Home Addon", "host": "mock-adguard", "port": 3000}, context={"source": config_entries.SOURCE_HASSIO}, ) - assert result["type"] == data_entry_flow.RESULT_TYPE_FORM - assert result["step_id"] == "hassio_confirm" - assert result["description_placeholders"] == {"addon": "AdGuard Home Addon"} + assert result + assert result.get("type") == data_entry_flow.RESULT_TYPE_FORM + assert result.get("step_id") == "hassio_confirm" + assert result.get("description_placeholders") == {"addon": "AdGuard Home Addon"} - result = await hass.config_entries.flow.async_configure(result["flow_id"], {}) - assert result["type"] == data_entry_flow.RESULT_TYPE_CREATE_ENTRY - assert result["title"] == "AdGuard Home Addon" - assert result["data"][CONF_HOST] == "mock-adguard" - assert result["data"][CONF_PASSWORD] is None - assert result["data"][CONF_PORT] == 3000 - assert result["data"][CONF_SSL] is False - assert result["data"][CONF_USERNAME] is None - assert result["data"][CONF_VERIFY_SSL] + result2 = await hass.config_entries.flow.async_configure(result["flow_id"], {}) + + assert result2 + assert result2.get("type") == data_entry_flow.RESULT_TYPE_CREATE_ENTRY + assert result2.get("title") == "AdGuard Home Addon" + + data = result2.get("data") + assert data + assert data[CONF_HOST] == "mock-adguard" + assert data[CONF_PASSWORD] is None + assert data[CONF_PORT] == 3000 + assert data[CONF_SSL] is False + assert data[CONF_USERNAME] is None + assert data[CONF_VERIFY_SSL] async def test_hassio_connection_error( @@ -181,6 +197,7 @@ async def test_hassio_connection_error( result = await hass.config_entries.flow.async_configure(result["flow_id"], {}) - assert result["type"] == data_entry_flow.RESULT_TYPE_FORM - assert result["step_id"] == "hassio_confirm" - assert result["errors"] == {"base": "cannot_connect"} + assert result + assert result.get("type") == data_entry_flow.RESULT_TYPE_FORM + assert result.get("step_id") == "hassio_confirm" + assert result.get("errors") == {"base": "cannot_connect"}