diff --git a/homeassistant/components/prusalink/coordinator.py b/homeassistant/components/prusalink/coordinator.py index 7d4526a8b45..1d1989119fa 100644 --- a/homeassistant/components/prusalink/coordinator.py +++ b/homeassistant/components/prusalink/coordinator.py @@ -9,6 +9,7 @@ import logging from time import monotonic from typing import TypeVar +from httpx import ConnectError from pyprusalink import JobInfo, LegacyPrinterStatus, PrinterStatus, PrusaLink from pyprusalink.types import InvalidAuth, PrusaLinkError @@ -47,6 +48,8 @@ class PrusaLinkUpdateCoordinator(DataUpdateCoordinator[T], ABC): raise UpdateFailed("Invalid authentication") from None except PrusaLinkError as err: raise UpdateFailed(str(err)) from err + except (TimeoutError, ConnectError) as err: + raise UpdateFailed("Cannot connect") from err self.update_interval = self._get_update_interval(data) return data diff --git a/tests/components/prusalink/test_init.py b/tests/components/prusalink/test_init.py index 2cdc6894eeb..bd0fb84cafd 100644 --- a/tests/components/prusalink/test_init.py +++ b/tests/components/prusalink/test_init.py @@ -3,6 +3,7 @@ from datetime import timedelta from unittest.mock import patch +from httpx import ConnectError from pyprusalink.types import InvalidAuth, PrusaLinkError import pytest @@ -36,7 +37,10 @@ async def test_unloading( assert state.state == "unavailable" -@pytest.mark.parametrize("exception", [InvalidAuth, PrusaLinkError]) +@pytest.mark.parametrize( + "exception", + [InvalidAuth, PrusaLinkError, ConnectError("All connection attempts failed")], +) async def test_failed_update( hass: HomeAssistant, mock_config_entry: ConfigEntry, exception ) -> None: