From 7cfcfca210340916a2e644e23a2d2d35ced52f54 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Sat, 31 Jan 2026 15:14:57 +0100 Subject: [PATCH] Remove outdated device registry cleanup in generic_thermostat (#161861) --- .../components/generic_thermostat/__init__.py | 12 +-- .../generic_thermostat/test_init.py | 87 ------------------- 2 files changed, 1 insertion(+), 98 deletions(-) diff --git a/homeassistant/components/generic_thermostat/__init__.py b/homeassistant/components/generic_thermostat/__init__.py index 177f6695bac..6927b9fe26e 100644 --- a/homeassistant/components/generic_thermostat/__init__.py +++ b/homeassistant/components/generic_thermostat/__init__.py @@ -5,10 +5,7 @@ import logging from homeassistant.config_entries import ConfigEntry from homeassistant.core import Event, HomeAssistant from homeassistant.helpers import entity_registry as er -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.event import async_track_entity_registry_updated_event from homeassistant.helpers.helper_integration import ( async_handle_source_entity_changes, @@ -23,13 +20,6 @@ _LOGGER = logging.getLogger(__name__) async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: """Set up 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_HEATER], - ) - def set_humidifier_entity_id_or_uuid(source_entity_id: str) -> None: hass.config_entries.async_update_entry( entry, diff --git a/tests/components/generic_thermostat/test_init.py b/tests/components/generic_thermostat/test_init.py index ceca7ecc444..0d0c95b459d 100644 --- a/tests/components/generic_thermostat/test_init.py +++ b/tests/components/generic_thermostat/test_init.py @@ -140,93 +140,6 @@ def track_entity_registry_actions(hass: HomeAssistant, entity_id: str) -> list[s return events -async def test_device_cleaning( - hass: HomeAssistant, - device_registry: dr.DeviceRegistry, - entity_registry: er.EntityRegistry, -) -> None: - """Test cleaning of devices linked to the helper config entry.""" - - # 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={("switch", "identifier_test1")}, - connections={("mac", "30:31:32:33:34:01")}, - ) - - # Source entity registry - source_entity = entity_registry.async_get_or_create( - "switch", - "test", - "source", - config_entry=source_config_entry, - device_id=source_device1_entry.id, - ) - await hass.async_block_till_done() - assert entity_registry.async_get("switch.test_source") is not None - - # Configure the configuration entry for helper - helper_config_entry = MockConfigEntry( - data={}, - domain=DOMAIN, - options={ - "name": "Test", - "heater": "switch.test_source", - "target_sensor": "sensor.temperature", - "ac_mode": False, - "cold_tolerance": 0.3, - "hot_tolerance": 0.3, - }, - title="Test", - ) - helper_config_entry.add_to_hass(hass) - assert await hass.config_entries.async_setup(helper_config_entry.entry_id) - await hass.async_block_till_done() - - # Confirm the link between the source entity device and the helper entity - helper_entity = entity_registry.async_get("climate.test") - assert helper_entity is not None - assert helper_entity.device_id == source_entity.device_id - - # Device entry incorrectly linked to config entry - device_registry.async_get_or_create( - config_entry_id=helper_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=helper_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, 3 devices are expected to be linked - devices_before_reload = device_registry.devices.get_devices_for_config_entry_id( - helper_config_entry.entry_id - ) - assert len(devices_before_reload) == 2 - - # Config entry reload - await hass.config_entries.async_reload(helper_config_entry.entry_id) - await hass.async_block_till_done() - - # Confirm the link between the source entity device and the helper entity - helper_entity = entity_registry.async_get("climate.test") - assert helper_entity is not None - assert helper_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( - helper_config_entry.entry_id - ) - assert len(devices_after_reload) == 0 - - @pytest.mark.usefixtures( "sensor_config_entry", "sensor_device",