Handle no data error in Electricity Maps config flow (#110259)

Co-authored-by: Viktor Andersson <30777521+VIKTORVAV99@users.noreply.github.com>
pull/110720/head
Jan-Philipp Benecke 2024-02-12 15:03:29 +01:00 committed by Franck Nijhof
parent a0ae18a1b6
commit 6a0c3f1b4f
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
3 changed files with 7 additions and 9 deletions

View File

@ -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:

View File

@ -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%]"
}
},

View File

@ -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,