1
0
mirror of https://github.com/home-assistant/core.git synced 2026-03-03 00:00:58 +00:00

Remove analytics platform in template (#152876)

This commit is contained in:
Artur Pragacz
2025-09-24 12:32:14 +02:00
committed by GitHub
parent afefa16615
commit 4ea4eec2d8
2 changed files with 0 additions and 148 deletions

View File

@@ -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)

View File

@@ -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,
},
]