From cae22e510932fc0891738a2a3529ca5938de106a Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Wed, 29 May 2024 09:41:09 +0200 Subject: [PATCH] Adjust add-on installation error message (#118309) --- homeassistant/components/hassio/addon_manager.py | 12 ++++++++---- tests/components/hassio/test_addon_manager.py | 4 ++-- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/hassio/addon_manager.py b/homeassistant/components/hassio/addon_manager.py index dab011bb617..b3c43f16be1 100644 --- a/homeassistant/components/hassio/addon_manager.py +++ b/homeassistant/components/hassio/addon_manager.py @@ -183,13 +183,18 @@ class AddonManager: options = {"options": config} await async_set_addon_options(self._hass, self.addon_slug, options) + def _check_addon_available(self, addon_info: AddonInfo) -> None: + """Check if the managed add-on is available.""" + + if not addon_info.available: + raise AddonError(f"{self.addon_name} add-on is not available") + @api_error("Failed to install the {addon_name} add-on") async def async_install_addon(self) -> None: """Install the managed add-on.""" addon_info = await self.async_get_addon_info() - if not addon_info.available: - raise AddonError(f"{self.addon_name} add-on is not available anymore") + self._check_addon_available(addon_info) await async_install_addon(self._hass, self.addon_slug) @@ -203,8 +208,7 @@ class AddonManager: """Update the managed add-on if needed.""" addon_info = await self.async_get_addon_info() - if not addon_info.available: - raise AddonError(f"{self.addon_name} add-on is not available anymore") + self._check_addon_available(addon_info) if addon_info.state is AddonState.NOT_INSTALLED: raise AddonError(f"{self.addon_name} add-on is not installed") diff --git a/tests/components/hassio/test_addon_manager.py b/tests/components/hassio/test_addon_manager.py index f846de007ef..69b9f5555a3 100644 --- a/tests/components/hassio/test_addon_manager.py +++ b/tests/components/hassio/test_addon_manager.py @@ -198,12 +198,12 @@ async def test_not_available_raises_exception( with pytest.raises(AddonError) as err: await addon_manager.async_install_addon() - assert str(err.value) == "Test add-on is not available anymore" + assert str(err.value) == "Test add-on is not available" with pytest.raises(AddonError) as err: await addon_manager.async_update_addon() - assert str(err.value) == "Test add-on is not available anymore" + assert str(err.value) == "Test add-on is not available" async def test_get_addon_discovery_info(