From 08c8ab7302e39f9f795b284820bb16c54e900f75 Mon Sep 17 00:00:00 2001 From: mkmer Date: Mon, 19 Sep 2022 15:18:53 -0400 Subject: [PATCH] Bumped AIOAladdinConnect 0.1.46 (#78767) --- .../components/aladdin_connect/__init__.py | 6 ++++-- .../components/aladdin_connect/config_flow.py | 16 ++++++++++------ .../components/aladdin_connect/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- .../aladdin_connect/test_config_flow.py | 3 +++ tests/components/aladdin_connect/test_init.py | 3 +++ 7 files changed, 23 insertions(+), 11 deletions(-) diff --git a/homeassistant/components/aladdin_connect/__init__.py b/homeassistant/components/aladdin_connect/__init__.py index 40dd0dd981a..e66efc1b0ab 100644 --- a/homeassistant/components/aladdin_connect/__init__.py +++ b/homeassistant/components/aladdin_connect/__init__.py @@ -4,6 +4,7 @@ import logging from typing import Final from AIOAladdinConnect import AladdinConnectClient +from AIOAladdinConnect.session_manager import InvalidPasswordError from aiohttp import ClientConnectionError from homeassistant.config_entries import ConfigEntry @@ -27,10 +28,11 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: username, password, async_get_clientsession(hass), CLIENT_ID ) try: - if not await acc.login(): - raise ConfigEntryAuthFailed("Incorrect Password") + await acc.login() except (ClientConnectionError, asyncio.TimeoutError) as ex: raise ConfigEntryNotReady("Can not connect to host") from ex + except InvalidPasswordError as ex: + raise ConfigEntryAuthFailed("Incorrect Password") from ex hass.data.setdefault(DOMAIN, {})[entry.entry_id] = acc await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) diff --git a/homeassistant/components/aladdin_connect/config_flow.py b/homeassistant/components/aladdin_connect/config_flow.py index 4f03d7cdb3b..1bfa9757907 100644 --- a/homeassistant/components/aladdin_connect/config_flow.py +++ b/homeassistant/components/aladdin_connect/config_flow.py @@ -7,7 +7,7 @@ import logging from typing import Any from AIOAladdinConnect import AladdinConnectClient -from aiohttp import ClientError +from AIOAladdinConnect.session_manager import InvalidPasswordError from aiohttp.client_exceptions import ClientConnectionError import voluptuous as vol @@ -43,9 +43,13 @@ async def validate_input(hass: HomeAssistant, data: dict[str, Any]) -> None: async_get_clientsession(hass), CLIENT_ID, ) - login = await acc.login() - if not login: - raise InvalidAuth + try: + await acc.login() + except (ClientConnectionError, asyncio.TimeoutError) as ex: + raise ex + + except InvalidPasswordError as ex: + raise InvalidAuth from ex class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): @@ -80,7 +84,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): except InvalidAuth: errors["base"] = "invalid_auth" - except (ClientConnectionError, asyncio.TimeoutError, ClientError): + except (ClientConnectionError, asyncio.TimeoutError): errors["base"] = "cannot_connect" else: @@ -117,7 +121,7 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): except InvalidAuth: errors["base"] = "invalid_auth" - except (ClientConnectionError, asyncio.TimeoutError, ClientError): + except (ClientConnectionError, asyncio.TimeoutError): errors["base"] = "cannot_connect" else: diff --git a/homeassistant/components/aladdin_connect/manifest.json b/homeassistant/components/aladdin_connect/manifest.json index 3a3efa0f4a2..50ab6af6f85 100644 --- a/homeassistant/components/aladdin_connect/manifest.json +++ b/homeassistant/components/aladdin_connect/manifest.json @@ -2,7 +2,7 @@ "domain": "aladdin_connect", "name": "Aladdin Connect", "documentation": "https://www.home-assistant.io/integrations/aladdin_connect", - "requirements": ["AIOAladdinConnect==0.1.44"], + "requirements": ["AIOAladdinConnect==0.1.46"], "codeowners": ["@mkmer"], "iot_class": "cloud_polling", "loggers": ["aladdin_connect"], diff --git a/requirements_all.txt b/requirements_all.txt index 4032d10e6a0..304ec394577 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -5,7 +5,7 @@ AEMET-OpenData==0.2.1 # homeassistant.components.aladdin_connect -AIOAladdinConnect==0.1.44 +AIOAladdinConnect==0.1.46 # homeassistant.components.adax Adax-local==0.1.4 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 3679c3b598a..104275aad87 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -7,7 +7,7 @@ AEMET-OpenData==0.2.1 # homeassistant.components.aladdin_connect -AIOAladdinConnect==0.1.44 +AIOAladdinConnect==0.1.46 # homeassistant.components.adax Adax-local==0.1.4 diff --git a/tests/components/aladdin_connect/test_config_flow.py b/tests/components/aladdin_connect/test_config_flow.py index 19017e79570..47b6645e800 100644 --- a/tests/components/aladdin_connect/test_config_flow.py +++ b/tests/components/aladdin_connect/test_config_flow.py @@ -1,6 +1,7 @@ """Test the Aladdin Connect config flow.""" from unittest.mock import MagicMock, patch +from AIOAladdinConnect.session_manager import InvalidPasswordError from aiohttp.client_exceptions import ClientConnectionError from homeassistant import config_entries @@ -54,6 +55,7 @@ async def test_form_failed_auth( DOMAIN, context={"source": config_entries.SOURCE_USER} ) mock_aladdinconnect_api.login.return_value = False + mock_aladdinconnect_api.login.side_effect = InvalidPasswordError with patch( "homeassistant.components.aladdin_connect.config_flow.AladdinConnectClient", return_value=mock_aladdinconnect_api, @@ -231,6 +233,7 @@ async def test_reauth_flow_auth_error( assert result["type"] == FlowResultType.FORM assert result["errors"] == {} mock_aladdinconnect_api.login.return_value = False + mock_aladdinconnect_api.login.side_effect = InvalidPasswordError with patch( "homeassistant.components.aladdin_connect.config_flow.AladdinConnectClient", return_value=mock_aladdinconnect_api, diff --git a/tests/components/aladdin_connect/test_init.py b/tests/components/aladdin_connect/test_init.py index 4cbb2333cc5..9084754d569 100644 --- a/tests/components/aladdin_connect/test_init.py +++ b/tests/components/aladdin_connect/test_init.py @@ -1,6 +1,7 @@ """Test for Aladdin Connect init logic.""" from unittest.mock import MagicMock, patch +from AIOAladdinConnect.session_manager import InvalidPasswordError from aiohttp import ClientConnectionError from homeassistant.components.aladdin_connect.const import DOMAIN @@ -43,6 +44,7 @@ async def test_setup_login_error( ) config_entry.add_to_hass(hass) mock_aladdinconnect_api.login.return_value = False + mock_aladdinconnect_api.login.side_effect = InvalidPasswordError with patch( "homeassistant.components.aladdin_connect.cover.AladdinConnectClient", return_value=mock_aladdinconnect_api, @@ -100,6 +102,7 @@ async def test_entry_password_fail( ) entry.add_to_hass(hass) mock_aladdinconnect_api.login = AsyncMock(return_value=False) + mock_aladdinconnect_api.login.side_effect = InvalidPasswordError with patch( "homeassistant.components.aladdin_connect.AladdinConnectClient", return_value=mock_aladdinconnect_api,