Skip to content

Commit

Permalink
Patch out old style state translations in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
frenck committed Feb 6, 2023
1 parent 6b9c6fb commit cfccc60
Showing 1 changed file with 44 additions and 11 deletions.
55 changes: 44 additions & 11 deletions tests/helpers/test_translation.py
Original file line number Diff line number Diff line change
Expand Up @@ -249,25 +249,36 @@ async def test_translation_merging(hass, caplog):
hass.config.components.add("sensor.moon")
hass.config.components.add("sensor")

translations = await translation.async_get_translations(hass, "en", "state")
orig_load_translations = translation.load_translations_files

def mock_load_translations_files(files):
"""Mock loading."""
result = orig_load_translations(files)
result["sensor.moon"] = {
"state": {"moon__phase": {"first_quarter": "First Quarter"}}
}
return result

with patch(
"homeassistant.helpers.translation.load_translations_files",
side_effect=mock_load_translations_files,
):
translations = await translation.async_get_translations(hass, "en", "state")

assert "component.sensor.state.moon__phase.first_quarter" in translations

hass.config.components.add("sensor.season")

# Patch in some bad translation data

orig_load_translations = translation.load_translations_files

def mock_load_translations_files(files):
def mock_load_bad_translations_files(files):
"""Mock loading."""
result = orig_load_translations(files)
result["sensor.season"] = {"state": "bad data"}
return result

with patch(
"homeassistant.helpers.translation.load_translations_files",
side_effect=mock_load_translations_files,
side_effect=mock_load_bad_translations_files,
):
translations = await translation.async_get_translations(hass, "en", "state")

Expand All @@ -281,21 +292,43 @@ def mock_load_translations_files(files):

async def test_translation_merging_loaded_apart(hass, caplog):
"""Test we merge translations of two integrations when they are not loaded at the same time."""
orig_load_translations = translation.load_translations_files

def mock_load_translations_files(files):
"""Mock loading."""
result = orig_load_translations(files)
result["sensor.moon"] = {
"state": {"moon__phase": {"first_quarter": "First Quarter"}}
}
return result

hass.config.components.add("sensor")

translations = await translation.async_get_translations(hass, "en", "state")
with patch(
"homeassistant.helpers.translation.load_translations_files",
side_effect=mock_load_translations_files,
):
translations = await translation.async_get_translations(hass, "en", "state")

assert "component.sensor.state.moon__phase.first_quarter" not in translations

hass.config.components.add("sensor.moon")

translations = await translation.async_get_translations(hass, "en", "state")
with patch(
"homeassistant.helpers.translation.load_translations_files",
side_effect=mock_load_translations_files,
):
translations = await translation.async_get_translations(hass, "en", "state")

assert "component.sensor.state.moon__phase.first_quarter" in translations

translations = await translation.async_get_translations(
hass, "en", "state", integrations={"sensor"}
)
with patch(
"homeassistant.helpers.translation.load_translations_files",
side_effect=mock_load_translations_files,
):
translations = await translation.async_get_translations(
hass, "en", "state", integrations={"sensor"}
)

assert "component.sensor.state.moon__phase.first_quarter" in translations

Expand Down

0 comments on commit cfccc60

Please sign in to comment.