Update buienradar sensors only after being added to HA (#131830)

* Update buienradar sensors only after being added to HA

* Move check to util

* Check for platform in sensor state property

* Move check to unit translation key property

* Add test for sensor check

* Properly handle added_to_hass

* Remove redundant comment
This commit is contained in:
Abílio Costa
2024-12-02 12:52:59 +00:00
committed by GitHub
parent 99063ba141
commit 6db8fced60
3 changed files with 61 additions and 4 deletions

View File

@@ -545,6 +545,45 @@ async def test_translated_unit_with_native_unit_raises(
assert entity0.entity_id is None
async def test_unit_translation_key_without_platform_raises(
hass: HomeAssistant,
) -> None:
"""Test that unit translation key property raises if the entity has no platform yet."""
with patch(
"homeassistant.helpers.service.translation.async_get_translations",
return_value={
"component.test.entity.sensor.test_translation_key.unit_of_measurement": "Tests"
},
):
entity0 = MockSensor(
name="Test",
native_value="123",
unique_id="very_unique",
)
entity0.entity_description = SensorEntityDescription(
"test",
translation_key="test_translation_key",
)
with pytest.raises(
ValueError,
match="cannot have a translation key for unit of measurement before "
"being added to the entity platform",
):
unit = entity0.unit_of_measurement # noqa: F841
setup_test_component_platform(hass, sensor.DOMAIN, [entity0])
assert await async_setup_component(
hass, "sensor", {"sensor": {"platform": "test"}}
)
await hass.async_block_till_done()
# Should not raise after being added to the platform
unit = entity0.unit_of_measurement # noqa: F841
assert unit == "Tests"
@pytest.mark.parametrize(
(
"device_class",