From 4ea4eec2d81c9b52d461bf64097eb355c97c05a5 Mon Sep 17 00:00:00 2001 From: Artur Pragacz <49985303+arturpragacz@users.noreply.github.com> Date: Wed, 24 Sep 2025 12:32:14 +0200 Subject: [PATCH] Remove analytics platform in template (#152876) --- .../components/template/analytics.py | 43 ------- tests/components/template/test_analytics.py | 105 ------------------ 2 files changed, 148 deletions(-) delete mode 100644 homeassistant/components/template/analytics.py delete mode 100644 tests/components/template/test_analytics.py diff --git a/homeassistant/components/template/analytics.py b/homeassistant/components/template/analytics.py deleted file mode 100644 index e4db2c5c70a..00000000000 --- a/homeassistant/components/template/analytics.py +++ /dev/null @@ -1,43 +0,0 @@ -"""Analytics platform.""" - -from homeassistant.components.analytics import ( - AnalyticsInput, - AnalyticsModifications, - EntityAnalyticsModifications, -) -from homeassistant.const import Platform -from homeassistant.core import HomeAssistant, split_entity_id -from homeassistant.helpers import entity_registry as er - -FILTERED_PLATFORM_CAPABILITY: dict[str, str] = { - Platform.FAN: "preset_modes", - Platform.SELECT: "options", -} - - -async def async_modify_analytics( - hass: HomeAssistant, analytics_input: AnalyticsInput -) -> AnalyticsModifications: - """Modify the analytics.""" - ent_reg = er.async_get(hass) - - entities: dict[str, EntityAnalyticsModifications] = {} - for entity_id in analytics_input.entity_ids: - platform = split_entity_id(entity_id)[0] - if platform not in FILTERED_PLATFORM_CAPABILITY: - continue - - entity_entry = ent_reg.entities[entity_id] - if entity_entry.capabilities is not None: - filtered_capability = FILTERED_PLATFORM_CAPABILITY[platform] - if filtered_capability not in entity_entry.capabilities: - continue - - capabilities = dict(entity_entry.capabilities) - capabilities[filtered_capability] = len(capabilities[filtered_capability]) - - entities[entity_id] = EntityAnalyticsModifications( - capabilities=capabilities - ) - - return AnalyticsModifications(entities=entities) diff --git a/tests/components/template/test_analytics.py b/tests/components/template/test_analytics.py deleted file mode 100644 index 33a0373bd17..00000000000 --- a/tests/components/template/test_analytics.py +++ /dev/null @@ -1,105 +0,0 @@ -"""Tests for analytics platform.""" - -import pytest - -from homeassistant.components.analytics import async_devices_payload -from homeassistant.components.template import DOMAIN -from homeassistant.const import Platform -from homeassistant.core import HomeAssistant -from homeassistant.helpers import entity_registry as er -from homeassistant.setup import async_setup_component - - -@pytest.mark.asyncio -async def test_analytics( - hass: HomeAssistant, entity_registry: er.EntityRegistry -) -> None: - """Test the analytics platform.""" - await async_setup_component(hass, "analytics", {}) - - entity_registry.async_get_or_create( - domain=Platform.FAN, - platform="template", - unique_id="fan1", - suggested_object_id="my_fan", - capabilities={"options": ["a", "b", "c"], "preset_modes": ["auto", "eco"]}, - ) - entity_registry.async_get_or_create( - domain=Platform.SELECT, - platform="template", - unique_id="select1", - suggested_object_id="my_select", - capabilities={"not_filtered": "xyz", "options": ["a", "b", "c"]}, - ) - entity_registry.async_get_or_create( - domain=Platform.SELECT, - platform="template", - unique_id="select2", - suggested_object_id="my_select", - capabilities={"not_filtered": "xyz"}, - ) - entity_registry.async_get_or_create( - domain=Platform.LIGHT, - platform="template", - unique_id="light1", - suggested_object_id="my_light", - capabilities={"not_filtered": "abc"}, - ) - - result = await async_devices_payload(hass) - assert result["integrations"][DOMAIN]["entities"] == [ - { - "assumed_state": None, - "capabilities": { - "options": ["a", "b", "c"], - "preset_modes": 2, - }, - "domain": "fan", - "entity_category": None, - "has_entity_name": False, - "modified_by_integration": [ - "capabilities", - ], - "original_device_class": None, - "unit_of_measurement": None, - }, - { - "assumed_state": None, - "capabilities": { - "not_filtered": "xyz", - "options": 3, - }, - "domain": "select", - "entity_category": None, - "has_entity_name": False, - "modified_by_integration": [ - "capabilities", - ], - "original_device_class": None, - "unit_of_measurement": None, - }, - { - "assumed_state": None, - "capabilities": { - "not_filtered": "xyz", - }, - "domain": "select", - "entity_category": None, - "has_entity_name": False, - "modified_by_integration": None, - "original_device_class": None, - "unit_of_measurement": None, - }, - { - "assumed_state": None, - "capabilities": { - "not_filtered": "abc", - }, - "domain": "light", - "entity_category": None, - "has_entity_name": False, - "modified_by_integration": None, - "original_device_class": None, - "unit_of_measurement": None, - }, - ]