diff --git a/homeassistant/components/wyoming/config_flow.py b/homeassistant/components/wyoming/config_flow.py index 9f02cac1c93..e1b41b54058 100644 --- a/homeassistant/components/wyoming/config_flow.py +++ b/homeassistant/components/wyoming/config_flow.py @@ -80,7 +80,9 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): if user_input is not None: uri = urlparse(self._hassio_discovery.config["uri"]) if service := await WyomingService.create(uri.hostname, uri.port): - if not any(asr for asr in service.info.asr if asr.installed): + if not any( + asr for asr in service.info.asr if asr.installed + ) and not any(tts for tts in service.info.tts if tts.installed): return self.async_abort(reason="no_services") return self.async_create_entry( diff --git a/tests/components/wyoming/snapshots/test_config_flow.ambr b/tests/components/wyoming/snapshots/test_config_flow.ambr index ff26f93e3e2..685ea38f84e 100644 --- a/tests/components/wyoming/snapshots/test_config_flow.ambr +++ b/tests/components/wyoming/snapshots/test_config_flow.ambr @@ -37,3 +37,79 @@ 'version': 1, }) # --- +# name: test_hassio_addon_discovery[info0] + FlowResultSnapshot({ + 'context': dict({ + 'source': 'hassio', + 'unique_id': '1234', + }), + 'data': dict({ + 'host': 'mock-piper', + 'port': 10200, + }), + 'description': None, + 'description_placeholders': None, + 'flow_id': , + 'handler': 'wyoming', + 'options': dict({ + }), + 'result': ConfigEntrySnapshot({ + 'data': dict({ + 'host': 'mock-piper', + 'port': 10200, + }), + 'disabled_by': None, + 'domain': 'wyoming', + 'entry_id': , + 'options': dict({ + }), + 'pref_disable_new_entities': False, + 'pref_disable_polling': False, + 'source': 'hassio', + 'title': 'Piper', + 'unique_id': '1234', + 'version': 1, + }), + 'title': 'Piper', + 'type': , + 'version': 1, + }) +# --- +# name: test_hassio_addon_discovery[info1] + FlowResultSnapshot({ + 'context': dict({ + 'source': 'hassio', + 'unique_id': '1234', + }), + 'data': dict({ + 'host': 'mock-piper', + 'port': 10200, + }), + 'description': None, + 'description_placeholders': None, + 'flow_id': , + 'handler': 'wyoming', + 'options': dict({ + }), + 'result': ConfigEntrySnapshot({ + 'data': dict({ + 'host': 'mock-piper', + 'port': 10200, + }), + 'disabled_by': None, + 'domain': 'wyoming', + 'entry_id': , + 'options': dict({ + }), + 'pref_disable_new_entities': False, + 'pref_disable_polling': False, + 'source': 'hassio', + 'title': 'Piper', + 'unique_id': '1234', + 'version': 1, + }), + 'title': 'Piper', + 'type': , + 'version': 1, + }) +# --- diff --git a/tests/components/wyoming/test_config_flow.py b/tests/components/wyoming/test_config_flow.py index b4f24490b3b..896d3748ebd 100644 --- a/tests/components/wyoming/test_config_flow.py +++ b/tests/components/wyoming/test_config_flow.py @@ -3,6 +3,7 @@ from unittest.mock import AsyncMock, patch import pytest from syrupy.assertion import SnapshotAssertion +from wyoming.info import Info from homeassistant import config_entries from homeassistant.components.hassio import HassioServiceInfo @@ -131,10 +132,12 @@ async def test_no_supported_services(hass: HomeAssistant) -> None: assert result2["reason"] == "no_services" +@pytest.mark.parametrize("info", [STT_INFO, TTS_INFO]) async def test_hassio_addon_discovery( hass: HomeAssistant, mock_setup_entry: AsyncMock, snapshot: SnapshotAssertion, + info: Info, ) -> None: """Test config flow initiated by Supervisor.""" result = await hass.config_entries.flow.async_init( @@ -149,7 +152,7 @@ async def test_hassio_addon_discovery( with patch( "homeassistant.components.wyoming.data.load_wyoming_info", - return_value=STT_INFO, + return_value=info, ) as mock_wyoming: result2 = await hass.config_entries.flow.async_configure(result["flow_id"], {})