diff --git a/homeassistant/helpers/config_entry_flow.py b/homeassistant/helpers/config_entry_flow.py index 6d200a39c85..7c087a1ee64 100644 --- a/homeassistant/helpers/config_entry_flow.py +++ b/homeassistant/helpers/config_entry_flow.py @@ -81,6 +81,9 @@ class DiscoveryFlowHandler(config_entries.ConfigFlow): return await self.async_step_confirm() + async_step_zeroconf = async_step_discovery + async_step_ssdp = async_step_discovery + async def async_step_import(self, _): """Handle a flow initialized by import.""" if self._async_in_progress() or self._async_current_entries(): diff --git a/tests/helpers/test_config_entry_flow.py b/tests/helpers/test_config_entry_flow.py index 5f8a642333a..eda62e1614c 100644 --- a/tests/helpers/test_config_entry_flow.py +++ b/tests/helpers/test_config_entry_flow.py @@ -75,24 +75,26 @@ async def test_user_has_confirmation(hass, discovery_flow_conf): assert result['type'] == data_entry_flow.RESULT_TYPE_FORM -async def test_discovery_single_instance(hass, discovery_flow_conf): - """Test we ask for confirmation via discovery.""" +@pytest.mark.parametrize('source', ['discovery', 'ssdp', 'zeroconf']) +async def test_discovery_single_instance(hass, discovery_flow_conf, source): + """Test we not allow duplicates.""" flow = config_entries.HANDLERS['test']() flow.hass = hass MockConfigEntry(domain='test').add_to_hass(hass) - result = await flow.async_step_discovery({}) + result = await getattr(flow, "async_step_{}".format(source))({}) assert result['type'] == data_entry_flow.RESULT_TYPE_ABORT assert result['reason'] == 'single_instance_allowed' -async def test_discovery_confirmation(hass, discovery_flow_conf): +@pytest.mark.parametrize('source', ['discovery', 'ssdp', 'zeroconf']) +async def test_discovery_confirmation(hass, discovery_flow_conf, source): """Test we ask for confirmation via discovery.""" flow = config_entries.HANDLERS['test']() flow.hass = hass - result = await flow.async_step_discovery({}) + result = await getattr(flow, "async_step_{}".format(source))({}) assert result['type'] == data_entry_flow.RESULT_TYPE_FORM assert result['step_id'] == 'confirm'