From 6680e819e59331e0771baae2fe870b84d9c23206 Mon Sep 17 00:00:00 2001 From: Florent Thoumie Date: Sun, 12 Feb 2023 00:04:59 -0800 Subject: [PATCH] Fix iaqualink exception handling after switch to httpx (#87898) Fix exception handling after switch to httpx --- homeassistant/components/iaqualink/__init__.py | 9 +++------ homeassistant/components/iaqualink/config_flow.py | 3 ++- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/iaqualink/__init__.py b/homeassistant/components/iaqualink/__init__.py index 146e2c2babc..cbdf909001a 100644 --- a/homeassistant/components/iaqualink/__init__.py +++ b/homeassistant/components/iaqualink/__init__.py @@ -7,7 +7,7 @@ from functools import wraps import logging from typing import Any, Concatenate, ParamSpec, TypeVar -import aiohttp.client_exceptions +import httpx from iaqualink.client import AqualinkClient from iaqualink.device import ( AqualinkBinarySensor, @@ -77,10 +77,7 @@ async def async_setup_entry( # noqa: C901 _LOGGER.error("Failed to login: %s", login_exception) await aqualink.close() return False - except ( - asyncio.TimeoutError, - aiohttp.client_exceptions.ClientConnectorError, - ) as aio_exception: + except (asyncio.TimeoutError, httpx.HTTPError) as aio_exception: await aqualink.close() raise ConfigEntryNotReady( f"Error while attempting login: {aio_exception}" @@ -149,7 +146,7 @@ async def async_setup_entry( # noqa: C901 try: await system.update() - except AqualinkServiceException as svc_exception: + except (AqualinkServiceException, httpx.HTTPError) as svc_exception: if prev is not None: _LOGGER.warning( "Failed to refresh system %s state: %s", diff --git a/homeassistant/components/iaqualink/config_flow.py b/homeassistant/components/iaqualink/config_flow.py index 3b3a99cac6e..0dfc60f2fee 100644 --- a/homeassistant/components/iaqualink/config_flow.py +++ b/homeassistant/components/iaqualink/config_flow.py @@ -3,6 +3,7 @@ from __future__ import annotations from typing import Any +import httpx from iaqualink.client import AqualinkClient from iaqualink.exception import ( AqualinkServiceException, @@ -42,7 +43,7 @@ class AqualinkFlowHandler(config_entries.ConfigFlow, domain=DOMAIN): pass except AqualinkServiceUnauthorizedException: errors["base"] = "invalid_auth" - except AqualinkServiceException: + except (AqualinkServiceException, httpx.HTTPError): errors["base"] = "cannot_connect" else: return self.async_create_entry(title=username, data=user_input)