Handle no data error in Electricity Maps config flow (#110259)
Co-authored-by: Viktor Andersson <30777521+VIKTORVAV99@users.noreply.github.com>pull/110720/head
parent
a0ae18a1b6
commit
6a0c3f1b4f
|
@ -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:
|
||||
|
|
|
@ -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%]"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue