mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Remove workaround for flaky translation tests (#131628)
This commit is contained in:
parent
a7db35c76c
commit
d6f4a79b46
@ -1815,3 +1815,20 @@ async def snapshot_platform(
|
|||||||
state = hass.states.get(entity_entry.entity_id)
|
state = hass.states.get(entity_entry.entity_id)
|
||||||
assert state, f"State not found for {entity_entry.entity_id}"
|
assert state, f"State not found for {entity_entry.entity_id}"
|
||||||
assert state == snapshot(name=f"{entity_entry.entity_id}-state")
|
assert state == snapshot(name=f"{entity_entry.entity_id}-state")
|
||||||
|
|
||||||
|
|
||||||
|
def reset_translation_cache(hass: HomeAssistant, components: list[str]) -> None:
|
||||||
|
"""Reset translation cache for specified components.
|
||||||
|
|
||||||
|
Use this if you are mocking a core component (for example via
|
||||||
|
mock_integration), to ensure that the mocked translations are not
|
||||||
|
persisted in the shared session cache.
|
||||||
|
"""
|
||||||
|
translations_cache = translation._async_get_translations_cache(hass)
|
||||||
|
for loaded_components in translations_cache.cache_data.loaded.values():
|
||||||
|
for component_to_unload in components:
|
||||||
|
loaded_components.discard(component_to_unload)
|
||||||
|
for loaded_categories in translations_cache.cache_data.cache.values():
|
||||||
|
for loaded_components in loaded_categories.values():
|
||||||
|
for component_to_unload in components:
|
||||||
|
loaded_components.pop(component_to_unload, None)
|
||||||
|
@ -827,9 +827,6 @@ async def check_translations(
|
|||||||
f"Unused ignore translations: {', '.join(unused_ignore)}. "
|
f"Unused ignore translations: {', '.join(unused_ignore)}. "
|
||||||
"Please remove them from the ignore_translations fixture."
|
"Please remove them from the ignore_translations fixture."
|
||||||
)
|
)
|
||||||
for key, description in translation_errors.items():
|
for description in translation_errors.values():
|
||||||
if key.startswith("component.cloud.issues."):
|
|
||||||
# cloud tests are flaky
|
|
||||||
continue
|
|
||||||
if description not in {"used", "unused"}:
|
if description not in {"used", "unused"}:
|
||||||
pytest.fail(description)
|
pytest.fail(description)
|
||||||
|
@ -45,6 +45,7 @@ from tests.common import (
|
|||||||
mock_integration,
|
mock_integration,
|
||||||
mock_platform,
|
mock_platform,
|
||||||
mock_restore_cache,
|
mock_restore_cache,
|
||||||
|
reset_translation_cache,
|
||||||
)
|
)
|
||||||
from tests.typing import ClientSessionGenerator, WebSocketGenerator
|
from tests.typing import ClientSessionGenerator, WebSocketGenerator
|
||||||
|
|
||||||
@ -1988,3 +1989,6 @@ async def test_default_engine_prefer_cloud_entity(
|
|||||||
provider_engine = tts.async_resolve_engine(hass, "test")
|
provider_engine = tts.async_resolve_engine(hass, "test")
|
||||||
assert provider_engine == "test"
|
assert provider_engine == "test"
|
||||||
assert tts.async_default_engine(hass) == "tts.cloud_tts_entity"
|
assert tts.async_default_engine(hass) == "tts.cloud_tts_entity"
|
||||||
|
|
||||||
|
# Reset the `cloud` translations cache
|
||||||
|
reset_translation_cache(hass, ["cloud"])
|
||||||
|
@ -1192,7 +1192,12 @@ def mock_get_source_ip() -> Generator[_patch]:
|
|||||||
|
|
||||||
@pytest.fixture(autouse=True, scope="session")
|
@pytest.fixture(autouse=True, scope="session")
|
||||||
def translations_once() -> Generator[_patch]:
|
def translations_once() -> Generator[_patch]:
|
||||||
"""Only load translations once per session."""
|
"""Only load translations once per session.
|
||||||
|
|
||||||
|
Warning: having this as a session fixture can cause issues with tests that
|
||||||
|
create mock integrations, overriding the real integration translations
|
||||||
|
with empty ones. Translations should be reset after such tests (see #131628)
|
||||||
|
"""
|
||||||
cache = _TranslationsCacheData({}, {})
|
cache = _TranslationsCacheData({}, {})
|
||||||
patcher = patch(
|
patcher = patch(
|
||||||
"homeassistant.helpers.translation._TranslationsCacheData",
|
"homeassistant.helpers.translation._TranslationsCacheData",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user