From fd3318bb0d78fe0e85f2e780c46fcbe183d0197b Mon Sep 17 00:00:00 2001 From: mettolen <1007649+mettolen@users.noreply.github.com> Date: Mon, 6 Jul 2026 13:07:50 +0300 Subject: [PATCH] Add translation support for connection errors in Saunum integration (#175675) --- homeassistant/components/saunum/__init__.py | 7 +++++-- homeassistant/components/saunum/strings.json | 3 +++ tests/components/saunum/test_init.py | 4 ++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/saunum/__init__.py b/homeassistant/components/saunum/__init__.py index 8dca2541ab14..7c9578ea9bec 100644 --- a/homeassistant/components/saunum/__init__.py +++ b/homeassistant/components/saunum/__init__.py @@ -39,8 +39,11 @@ async def async_setup_entry(hass: HomeAssistant, entry: LeilSaunaConfigEntry) -> try: client = await SaunumClient.create(host) except (SaunumConnectionError, SaunumTimeoutError) as exc: - # pylint: disable-next=home-assistant-exception-not-translated - raise ConfigEntryNotReady(f"Error connecting to {host}: {exc}") from exc + raise ConfigEntryNotReady( + translation_domain=DOMAIN, + translation_key="cannot_connect", + translation_placeholders={"host": host}, + ) from exc entry.async_on_unload(client.async_close) diff --git a/homeassistant/components/saunum/strings.json b/homeassistant/components/saunum/strings.json index 4e3645b66991..9b480f6a1eb0 100644 --- a/homeassistant/components/saunum/strings.json +++ b/homeassistant/components/saunum/strings.json @@ -87,6 +87,9 @@ } }, "exceptions": { + "cannot_connect": { + "message": "Error connecting to {host}" + }, "communication_error": { "message": "Communication error with sauna control unit" }, diff --git a/tests/components/saunum/test_init.py b/tests/components/saunum/test_init.py index 3a41acf57b5b..8de4866dbedf 100644 --- a/tests/components/saunum/test_init.py +++ b/tests/components/saunum/test_init.py @@ -44,6 +44,10 @@ async def test_async_setup_entry_connection_failed( assert not await hass.config_entries.async_setup(mock_config_entry.entry_id) assert mock_config_entry.state is ConfigEntryState.SETUP_RETRY + assert mock_config_entry.error_reason_translation_key == "cannot_connect" + assert mock_config_entry.error_reason_translation_placeholders == { + "host": mock_config_entry.data["host"], + } @pytest.mark.usefixtures("init_integration")