Make Withings test sensors from entity registry (#102025)

Test entities from entity registry
This commit is contained in:
Joost Lekkerkerker 2023-10-15 12:14:50 +02:00 committed by GitHub
parent 0eb4567364
commit dc19290271
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -7,15 +7,11 @@ from freezegun.api import FrozenDateTimeFactory
import pytest import pytest
from syrupy import SnapshotAssertion from syrupy import SnapshotAssertion
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN from homeassistant.const import STATE_UNAVAILABLE, Platform
from homeassistant.components.withings.const import DOMAIN
from homeassistant.components.withings.sensor import MEASUREMENT_SENSORS, SLEEP_SENSORS
from homeassistant.const import STATE_UNAVAILABLE
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er from homeassistant.helpers import entity_registry as er
from . import setup_integration from . import setup_integration
from .conftest import USER_ID
from tests.common import ( from tests.common import (
MockConfigEntry, MockConfigEntry,
@ -24,19 +20,6 @@ from tests.common import (
) )
async def async_get_entity_id(
hass: HomeAssistant,
key: str,
user_id: int,
platform: str,
) -> str | None:
"""Get an entity id for a user's attribute."""
entity_registry = er.async_get(hass)
unique_id = f"withings_{user_id}_{key}"
return entity_registry.async_get_entity_id(platform, DOMAIN, unique_id)
@pytest.mark.usefixtures("entity_registry_enabled_by_default") @pytest.mark.usefixtures("entity_registry_enabled_by_default")
async def test_all_entities( async def test_all_entities(
hass: HomeAssistant, hass: HomeAssistant,
@ -46,10 +29,14 @@ async def test_all_entities(
) -> None: ) -> None:
"""Test all entities.""" """Test all entities."""
await setup_integration(hass, polling_config_entry) await setup_integration(hass, polling_config_entry)
entity_registry = er.async_get(hass)
entities = er.async_entries_for_config_entry(
entity_registry, polling_config_entry.entry_id
)
for sensor in MEASUREMENT_SENSORS + SLEEP_SENSORS: for entity in entities:
entity_id = await async_get_entity_id(hass, sensor.key, USER_ID, SENSOR_DOMAIN) if entity.platform == Platform.SENSOR:
assert hass.states.get(entity_id) == snapshot assert hass.states.get(entity.entity_id) == snapshot
async def test_update_failed( async def test_update_failed(