Handle ReadTimeout during wolflink setup (#78135)

* Handle ReadTimeout during wolflink setup

* Reorder imports

Co-authored-by: Yevhenii Vaskivskyi <yevhenii.vaskivskyi@gmail.com>

* Reorder exceptions

Co-authored-by: Yevhenii Vaskivskyi <yevhenii.vaskivskyi@gmail.com>

* Use RequestError instead of ConnectError, ReadTimeout, and ConnectTimeout

Co-authored-by: Yevhenii Vaskivskyi <yevhenii.vaskivskyi@gmail.com>
This commit is contained in:
Jan Jedelský 2022-10-17 09:42:20 +02:00 committed by GitHub
parent 551fb44975
commit dfd3476cff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,7 +2,7 @@
from datetime import timedelta from datetime import timedelta
import logging import logging
from httpx import ConnectError, ConnectTimeout from httpx import RequestError
from wolf_smartset.token_auth import InvalidAuth from wolf_smartset.token_auth import InvalidAuth
from wolf_smartset.wolf_client import FetchFailed, ParameterReadError, WolfClient from wolf_smartset.wolf_client import FetchFailed, ParameterReadError, WolfClient
@ -74,7 +74,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
for parameter in parameters for parameter in parameters
if parameter.value_id in values if parameter.value_id in values
} }
except ConnectError as exception: except RequestError as exception:
raise UpdateFailed( raise UpdateFailed(
f"Error communicating with API: {exception}" f"Error communicating with API: {exception}"
) from exception ) from exception
@ -134,7 +134,7 @@ async def fetch_parameters_init(client: WolfClient, gateway_id: int, device_id:
"""Fetch all available parameters with usage of WolfClient but handles all exceptions and results in ConfigEntryNotReady.""" """Fetch all available parameters with usage of WolfClient but handles all exceptions and results in ConfigEntryNotReady."""
try: try:
return await fetch_parameters(client, gateway_id, device_id) return await fetch_parameters(client, gateway_id, device_id)
except (ConnectError, ConnectTimeout, FetchFailed) as exception: except (FetchFailed, RequestError) as exception:
raise ConfigEntryNotReady( raise ConfigEntryNotReady(
f"Error communicating with API: {exception}" f"Error communicating with API: {exception}"
) from exception ) from exception