Fix removing suggested_display_precision from entity registry (#110671)
* Fix removing suggested_display_precision from entity registry * Fix tests * Update homeassistant/components/sensor/__init__.py --------- Co-authored-by: Erik <erik@montnemery.com>pull/116111/head
parent
bbaa0c16cc
commit
169b9b0bfe
|
@ -786,11 +786,6 @@ class SensorEntity(Entity, cached_properties=CACHED_PROPERTIES_WITH_ATTR_):
|
||||||
ratio_log = floor(ratio_log) if ratio_log > 0 else ceil(ratio_log)
|
ratio_log = floor(ratio_log) if ratio_log > 0 else ceil(ratio_log)
|
||||||
display_precision = max(0, display_precision + ratio_log)
|
display_precision = max(0, display_precision + ratio_log)
|
||||||
|
|
||||||
if display_precision is None and (
|
|
||||||
DOMAIN not in self.registry_entry.options
|
|
||||||
or "suggested_display_precision" not in self.registry_entry.options
|
|
||||||
):
|
|
||||||
return
|
|
||||||
sensor_options: Mapping[str, Any] = self.registry_entry.options.get(DOMAIN, {})
|
sensor_options: Mapping[str, Any] = self.registry_entry.options.get(DOMAIN, {})
|
||||||
if (
|
if (
|
||||||
"suggested_display_precision" in sensor_options
|
"suggested_display_precision" in sensor_options
|
||||||
|
|
|
@ -1618,6 +1618,41 @@ async def test_suggested_precision_option_update(
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async def test_suggested_precision_option_removal(
|
||||||
|
hass: HomeAssistant,
|
||||||
|
) -> None:
|
||||||
|
"""Test suggested precision stored in the registry is removed."""
|
||||||
|
|
||||||
|
entity_registry = er.async_get(hass)
|
||||||
|
|
||||||
|
# Pre-register entities
|
||||||
|
entry = entity_registry.async_get_or_create("sensor", "test", "very_unique")
|
||||||
|
entity_registry.async_update_entity_options(
|
||||||
|
entry.entity_id,
|
||||||
|
"sensor",
|
||||||
|
{
|
||||||
|
"suggested_display_precision": 1,
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
entity0 = MockSensor(
|
||||||
|
name="Test",
|
||||||
|
device_class=SensorDeviceClass.DURATION,
|
||||||
|
native_unit_of_measurement=UnitOfTime.HOURS,
|
||||||
|
native_value="1.5",
|
||||||
|
suggested_display_precision=None,
|
||||||
|
unique_id="very_unique",
|
||||||
|
)
|
||||||
|
setup_test_component_platform(hass, sensor.DOMAIN, [entity0])
|
||||||
|
|
||||||
|
assert await async_setup_component(hass, "sensor", {"sensor": {"platform": "test"}})
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
|
# Assert the suggested precision is no longer stored in the registry
|
||||||
|
entry = entity_registry.async_get(entity0.entity_id)
|
||||||
|
assert entry.options.get("sensor", {}).get("suggested_display_precision") is None
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
(
|
(
|
||||||
"unit_system",
|
"unit_system",
|
||||||
|
|
Loading…
Reference in New Issue