Verify withings config (#26698)

This commit is contained in:
Paulus Schoutsen 2019-09-17 13:45:48 -07:00 committed by Bram Kragten
parent 46a55ed723
commit ef9b3321c1
3 changed files with 19 additions and 26 deletions

View file

@ -88,7 +88,10 @@ class WithingsFlowHandler(config_entries.ConfigFlow):
async def async_step_user(self, user_input=None):
"""Create an entry for selecting a profile."""
flow = self.hass.data.get(DATA_FLOW_IMPL, {})
flow = self.hass.data.get(DATA_FLOW_IMPL)
if not flow:
return self.async_abort(reason="no_flows")
if user_input:
return await self.async_step_auth(user_input)

View file

@ -12,6 +12,9 @@
},
"create_entry": {
"default": "Successfully authenticated with Withings for the selected profile."
},
"abort": {
"no_flows": "You need to configure Withings before being able to authenticate with it. Please read the documentation."
}
}
}
}

View file

@ -3,9 +3,7 @@ from aiohttp.web_request import BaseRequest
from asynctest import CoroutineMock, MagicMock
import pytest
from homeassistant import setup, data_entry_flow
import homeassistant.components.api as api
import homeassistant.components.http as http
from homeassistant import data_entry_flow
from homeassistant.components.withings import const
from homeassistant.components.withings.config_flow import (
register_flow_implementation,
@ -24,27 +22,6 @@ def flow_handler_fixture(hass: HomeAssistantType):
return flow_handler
@pytest.fixture(name="setup_hass")
async def setup_hass_fixture(hass: HomeAssistantType):
"""Provide hass instance."""
config = {
http.DOMAIN: {},
api.DOMAIN: {"base_url": "http://localhost/"},
const.DOMAIN: {
const.CLIENT_ID: "my_client_id",
const.CLIENT_SECRET: "my_secret",
const.PROFILES: ["Person 1", "Person 2"],
},
}
hass.data = {}
await setup.async_setup_component(hass, "http", config)
await setup.async_setup_component(hass, "api", config)
return hass
def test_flow_handler_init(flow_handler: WithingsFlowHandler):
"""Test the init of the flow handler."""
assert not flow_handler.flow_profile
@ -173,3 +150,13 @@ async def test_auth_callback_view_get(hass: HomeAssistantType):
"my_flow_id", {const.PROFILE: "my_profile", const.CODE: "my_code"}
)
hass.config_entries.flow.async_configure.reset_mock()
async def test_init_without_config(hass):
"""Try initializin a configg flow without it being configured."""
result = await hass.config_entries.flow.async_init(
"withings", context={"source": "user"}
)
assert result["type"] == "abort"
assert result["reason"] == "no_flows"