From 7bb0414a39df8ff43c8edf58767f807167f38a39 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Sat, 31 Jan 2026 15:14:09 +0100 Subject: [PATCH] Remove outdated device registry cleanup in statistics (#161865) --- .../components/statistics/__init__.py | 12 +-- tests/components/statistics/test_init.py | 88 ------------------- 2 files changed, 1 insertion(+), 99 deletions(-) diff --git a/homeassistant/components/statistics/__init__.py b/homeassistant/components/statistics/__init__.py index 5c80fd1b917..2e1c2126cb4 100644 --- a/homeassistant/components/statistics/__init__.py +++ b/homeassistant/components/statistics/__init__.py @@ -5,10 +5,7 @@ import logging from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_ENTITY_ID, Platform from homeassistant.core import HomeAssistant -from homeassistant.helpers.device import ( - async_entity_id_to_device_id, - async_remove_stale_devices_links_keep_entity_device, -) +from homeassistant.helpers.device import async_entity_id_to_device_id from homeassistant.helpers.helper_integration import ( async_handle_source_entity_changes, async_remove_helper_config_entry_from_source_device, @@ -23,13 +20,6 @@ _LOGGER = logging.getLogger(__name__) async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Set up Statistics from a config entry.""" - # This can be removed in HA Core 2026.2 - async_remove_stale_devices_links_keep_entity_device( - hass, - entry.entry_id, - entry.options[CONF_ENTITY_ID], - ) - def set_source_entity_id_or_uuid(source_entity_id: str) -> None: hass.config_entries.async_update_entry( entry, diff --git a/tests/components/statistics/test_init.py b/tests/components/statistics/test_init.py index 2312daa8c52..7ddf400daa3 100644 --- a/tests/components/statistics/test_init.py +++ b/tests/components/statistics/test_init.py @@ -104,94 +104,6 @@ async def test_unload_entry(hass: HomeAssistant, loaded_entry: MockConfigEntry) assert loaded_entry.state is ConfigEntryState.NOT_LOADED -async def test_device_cleaning( - hass: HomeAssistant, - device_registry: dr.DeviceRegistry, - entity_registry: er.EntityRegistry, -) -> None: - """Test the cleaning of devices linked to the helper Statistics.""" - - # Source entity device config entry - source_config_entry = MockConfigEntry() - source_config_entry.add_to_hass(hass) - - # Device entry of the source entity - source_device1_entry = device_registry.async_get_or_create( - config_entry_id=source_config_entry.entry_id, - identifiers={("sensor", "identifier_test1")}, - connections={("mac", "30:31:32:33:34:01")}, - ) - - # Source entity registry - source_entity = entity_registry.async_get_or_create( - "sensor", - "test", - "source", - config_entry=source_config_entry, - device_id=source_device1_entry.id, - ) - await hass.async_block_till_done() - assert entity_registry.async_get("sensor.test_source") is not None - - # Configure the configuration entry for Statistics - statistics_config_entry = MockConfigEntry( - data={}, - domain=DOMAIN, - options={ - "name": "Statistics", - "entity_id": "sensor.test_source", - "state_characteristic": "mean", - "keep_last_sample": False, - "percentile": 50.0, - "precision": 2.0, - "sampling_size": 20.0, - }, - title="Statistics", - ) - statistics_config_entry.add_to_hass(hass) - assert await hass.config_entries.async_setup(statistics_config_entry.entry_id) - await hass.async_block_till_done() - - # Confirm the link between the source entity device and the statistics sensor - statistics_entity = entity_registry.async_get("sensor.statistics") - assert statistics_entity is not None - assert statistics_entity.device_id == source_entity.device_id - - # Device entry incorrectly linked to Statistics config entry - device_registry.async_get_or_create( - config_entry_id=statistics_config_entry.entry_id, - identifiers={("sensor", "identifier_test2")}, - connections={("mac", "30:31:32:33:34:02")}, - ) - device_registry.async_get_or_create( - config_entry_id=statistics_config_entry.entry_id, - identifiers={("sensor", "identifier_test3")}, - connections={("mac", "30:31:32:33:34:03")}, - ) - await hass.async_block_till_done() - - # Before reloading the config entry, two devices are expected to be linked - devices_before_reload = device_registry.devices.get_devices_for_config_entry_id( - statistics_config_entry.entry_id - ) - assert len(devices_before_reload) == 2 - - # Config entry reload - await hass.config_entries.async_reload(statistics_config_entry.entry_id) - await hass.async_block_till_done() - - # Confirm the link between the source entity device and the statistics sensor - statistics_entity = entity_registry.async_get("sensor.statistics") - assert statistics_entity is not None - assert statistics_entity.device_id == source_entity.device_id - - # After reloading the config entry, only one linked device is expected - devices_after_reload = device_registry.devices.get_devices_for_config_entry_id( - statistics_config_entry.entry_id - ) - assert len(devices_after_reload) == 0 - - async def test_async_handle_source_entity_changes_source_entity_removed( hass: HomeAssistant, device_registry: dr.DeviceRegistry,