mirror of
https://github.com/home-assistant/core.git
synced 2025-07-20 19:57:07 +00:00
Fetch MaxLengthExceeded exception mesage from the translation cache (#113904)
* Fetch MaxLengthExceeded exception mesage from the translation cache * Update homeassistant/components/homeassistant/strings.json Co-authored-by: J. Nick Koston <nick@koston.org> * Add case without homeassistant integration * Fix test --------- Co-authored-by: J. Nick Koston <nick@koston.org>
This commit is contained in:
parent
6ddef7bbff
commit
8edbf88da1
@ -174,6 +174,9 @@
|
|||||||
"integration_config_error": {
|
"integration_config_error": {
|
||||||
"message": "Failed to process config for integration {domain} due to multiple ({errors}) errors. Check the logs for more information."
|
"message": "Failed to process config for integration {domain} due to multiple ({errors}) errors. Check the logs for more information."
|
||||||
},
|
},
|
||||||
|
"max_length_exceeded": {
|
||||||
|
"message": "Value {value} for property {property_name} has a maximum length of {max_length} characters."
|
||||||
|
},
|
||||||
"platform_component_load_err": {
|
"platform_component_load_err": {
|
||||||
"message": "Platform error: {domain} - {error}. Check the logs for more information."
|
"message": "Platform error: {domain} - {error}. Check the logs for more information."
|
||||||
},
|
},
|
||||||
|
@ -281,14 +281,18 @@ class MaxLengthExceeded(HomeAssistantError):
|
|||||||
"""Initialize error."""
|
"""Initialize error."""
|
||||||
super().__init__(
|
super().__init__(
|
||||||
self,
|
self,
|
||||||
(
|
translation_domain="homeassistant",
|
||||||
f"Value {value} for property {property_name} has a max length of "
|
translation_key="max_length_exceeded",
|
||||||
f"{max_length} characters"
|
translation_placeholders={
|
||||||
),
|
"value": value,
|
||||||
|
"property_name": property_name,
|
||||||
|
"max_length": str(max_length),
|
||||||
|
},
|
||||||
)
|
)
|
||||||
self.value = value
|
self.value = value
|
||||||
self.property_name = property_name
|
self.property_name = property_name
|
||||||
self.max_length = max_length
|
self.max_length = max_length
|
||||||
|
self.generate_message = True
|
||||||
|
|
||||||
|
|
||||||
class DependencyError(HomeAssistantError):
|
class DependencyError(HomeAssistantError):
|
||||||
|
@ -58,6 +58,7 @@ from homeassistant.exceptions import (
|
|||||||
ServiceNotFound,
|
ServiceNotFound,
|
||||||
)
|
)
|
||||||
from homeassistant.helpers.json import json_dumps
|
from homeassistant.helpers.json import json_dumps
|
||||||
|
from homeassistant.setup import async_setup_component
|
||||||
from homeassistant.util.async_ import create_eager_task
|
from homeassistant.util.async_ import create_eager_task
|
||||||
import homeassistant.util.dt as dt_util
|
import homeassistant.util.dt as dt_util
|
||||||
from homeassistant.util.read_only_dict import ReadOnlyDict
|
from homeassistant.util.read_only_dict import ReadOnlyDict
|
||||||
@ -1314,9 +1315,26 @@ async def test_eventbus_max_length_exceeded(hass: HomeAssistant) -> None:
|
|||||||
"this_event_exceeds_the_max_character_length_even_with_the_new_limit"
|
"this_event_exceeds_the_max_character_length_even_with_the_new_limit"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Without cached translations the translation key is returned
|
||||||
with pytest.raises(MaxLengthExceeded) as exc_info:
|
with pytest.raises(MaxLengthExceeded) as exc_info:
|
||||||
hass.bus.async_fire(long_evt_name)
|
hass.bus.async_fire(long_evt_name)
|
||||||
|
|
||||||
|
assert str(exc_info.value) == "max_length_exceeded"
|
||||||
|
assert exc_info.value.property_name == "event_type"
|
||||||
|
assert exc_info.value.max_length == 64
|
||||||
|
assert exc_info.value.value == long_evt_name
|
||||||
|
|
||||||
|
# Fetch translations
|
||||||
|
await async_setup_component(hass, "homeassistant", {})
|
||||||
|
|
||||||
|
# With cached translations the formatted message is returned
|
||||||
|
with pytest.raises(MaxLengthExceeded) as exc_info:
|
||||||
|
hass.bus.async_fire(long_evt_name)
|
||||||
|
|
||||||
|
assert (
|
||||||
|
str(exc_info.value)
|
||||||
|
== f"Value {long_evt_name} for property event_type has a maximum length of 64 characters"
|
||||||
|
)
|
||||||
assert exc_info.value.property_name == "event_type"
|
assert exc_info.value.property_name == "event_type"
|
||||||
assert exc_info.value.max_length == 64
|
assert exc_info.value.max_length == 64
|
||||||
assert exc_info.value.value == long_evt_name
|
assert exc_info.value.value == long_evt_name
|
||||||
|
Loading…
x
Reference in New Issue
Block a user