Add dict of translated errors to Tessie (#131346)

* Add dict of translated errors

* Fix test
This commit is contained in:
Brett Adams 2024-11-24 02:58:58 +10:00 committed by GitHub
parent 0d14005602
commit fa1b7d73d5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 15 additions and 4 deletions

View File

@ -13,6 +13,16 @@ MODELS = {
"models": "Model S", "models": "Model S",
} }
TRANSLATED_ERRORS = {
"unknown": "unknown",
"not supported": "not_supported",
"cable connected": "cable_connected",
"already active": "already_active",
"already inactive": "already_inactive",
"incorrect pin": "incorrect_pin",
"no cable": "no_cable",
}
class TessieState(StrEnum): class TessieState(StrEnum):
"""Tessie status.""" """Tessie status."""

View File

@ -10,7 +10,7 @@ from homeassistant.exceptions import HomeAssistantError
from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.device_registry import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity from homeassistant.helpers.update_coordinator import CoordinatorEntity
from .const import DOMAIN from .const import DOMAIN, TRANSLATED_ERRORS
from .coordinator import ( from .coordinator import (
TessieEnergySiteInfoCoordinator, TessieEnergySiteInfoCoordinator,
TessieEnergySiteLiveCoordinator, TessieEnergySiteLiveCoordinator,
@ -107,10 +107,11 @@ class TessieEntity(TessieBaseEntity):
if response["result"] is False: if response["result"] is False:
name: str = getattr(self, "name", self.entity_id) name: str = getattr(self, "name", self.entity_id)
reason: str = response.get("reason", "unknown") reason: str = response.get("reason", "unknown")
translation_key = TRANSLATED_ERRORS.get(reason, "command_failed")
raise HomeAssistantError( raise HomeAssistantError(
translation_domain=DOMAIN, translation_domain=DOMAIN,
translation_key=reason.replace(" ", "_"), translation_key=translation_key,
translation_placeholders={"name": name}, translation_placeholders={"name": name, "message": reason},
) )
def _async_update_attrs(self) -> None: def _async_update_attrs(self) -> None:

View File

@ -112,4 +112,4 @@ async def test_errors(hass: HomeAssistant) -> None:
blocking=True, blocking=True,
) )
mock_set.assert_called_once() mock_set.assert_called_once()
assert str(error.value) == TEST_RESPONSE_ERROR["reason"] assert str(error.value) == f"Command failed, {TEST_RESPONSE_ERROR["reason"]}"