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",
}
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):
"""Tessie status."""

View File

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

View File

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