From 6a0c3f1b4fdcb5966e36d8d18b7bd983c95723a1 Mon Sep 17 00:00:00 2001 From: Jan-Philipp Benecke Date: Mon, 12 Feb 2024 15:03:29 +0100 Subject: [PATCH] Handle no data error in Electricity Maps config flow (#110259) Co-authored-by: Viktor Andersson <30777521+VIKTORVAV99@users.noreply.github.com> --- homeassistant/components/co2signal/config_flow.py | 3 +++ homeassistant/components/co2signal/strings.json | 5 +---- tests/components/co2signal/test_config_flow.py | 8 +++----- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/homeassistant/components/co2signal/config_flow.py b/homeassistant/components/co2signal/config_flow.py index a678868ee18..a952f016671 100644 --- a/homeassistant/components/co2signal/config_flow.py +++ b/homeassistant/components/co2signal/config_flow.py @@ -8,6 +8,7 @@ from aioelectricitymaps import ( ElectricityMaps, ElectricityMapsError, ElectricityMapsInvalidTokenError, + ElectricityMapsNoDataError, ) import voluptuous as vol @@ -151,6 +152,8 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): await fetch_latest_carbon_intensity(self.hass, em, data) except ElectricityMapsInvalidTokenError: errors["base"] = "invalid_auth" + except ElectricityMapsNoDataError: + errors["base"] = "no_data" except ElectricityMapsError: errors["base"] = "unknown" else: diff --git a/homeassistant/components/co2signal/strings.json b/homeassistant/components/co2signal/strings.json index 89289dd816d..7444cde73d7 100644 --- a/homeassistant/components/co2signal/strings.json +++ b/homeassistant/components/co2signal/strings.json @@ -28,12 +28,9 @@ "error": { "invalid_auth": "[%key:common::config_flow::error::invalid_auth%]", "unknown": "[%key:common::config_flow::error::unknown%]", - "api_ratelimit": "API Ratelimit exceeded" + "no_data": "No data is available for the location you have selected." }, "abort": { - "already_configured": "[%key:common::config_flow::abort::already_configured_device%]", - "unknown": "[%key:common::config_flow::error::unknown%]", - "api_ratelimit": "[%key:component::co2signal::config::error::api_ratelimit%]", "reauth_successful": "[%key:common::config_flow::abort::reauth_successful%]" } }, diff --git a/tests/components/co2signal/test_config_flow.py b/tests/components/co2signal/test_config_flow.py index 29ce783f33a..518a747f852 100644 --- a/tests/components/co2signal/test_config_flow.py +++ b/tests/components/co2signal/test_config_flow.py @@ -5,6 +5,7 @@ from aioelectricitymaps import ( ElectricityMapsConnectionError, ElectricityMapsError, ElectricityMapsInvalidTokenError, + ElectricityMapsNoDataError, ) import pytest @@ -139,12 +140,9 @@ async def test_form_country(hass: HomeAssistant) -> None: ), (ElectricityMapsError("Something else"), "unknown"), (ElectricityMapsConnectionError("Boom"), "unknown"), + (ElectricityMapsNoDataError("I have no data"), "no_data"), ], - ids=[ - "invalid auth", - "generic error", - "json decode error", - ], + ids=["invalid auth", "generic error", "json decode error", "no data error"], ) async def test_form_error_handling( hass: HomeAssistant,