Add test helper to snapshot a platform (#115880)
* Add test helper to snapshot a platform * Add test helper to snapshot a platform
This commit is contained in:
parent
8f73422ce5
commit
16e31d8f74
2 changed files with 24 additions and 9 deletions
|
@ -22,6 +22,7 @@ from unittest.mock import AsyncMock, Mock, patch
|
|||
|
||||
from aiohttp.test_utils import unused_port as get_test_instance_port # noqa: F401
|
||||
import pytest
|
||||
from syrupy import SnapshotAssertion
|
||||
import voluptuous as vol
|
||||
|
||||
from homeassistant import auth, bootstrap, config_entries, loader
|
||||
|
@ -1733,3 +1734,22 @@ def setup_test_component_platform(
|
|||
|
||||
mock_platform(hass, f"test.{domain}", platform, built_in=built_in)
|
||||
return platform
|
||||
|
||||
|
||||
async def snapshot_platform(
|
||||
hass: HomeAssistant,
|
||||
entity_registry: er.EntityRegistry,
|
||||
snapshot: SnapshotAssertion,
|
||||
config_entry_id: str,
|
||||
) -> None:
|
||||
"""Snapshot a platform."""
|
||||
entity_entries = er.async_entries_for_config_entry(entity_registry, config_entry_id)
|
||||
assert entity_entries
|
||||
assert (
|
||||
len({entity_entry.domain for entity_entry in entity_entries}) == 1
|
||||
), "Please limit the loaded platforms to 1 platform."
|
||||
for entity_entry in entity_entries:
|
||||
assert entity_entry == snapshot(name=f"{entity_entry.entity_id}-entry")
|
||||
assert entity_entry.disabled_by is None, "Please enable all entities."
|
||||
assert (state := hass.states.get(entity_entry.entity_id))
|
||||
assert state == snapshot(name=f"{entity_entry.entity_id}-state")
|
||||
|
|
|
@ -21,7 +21,7 @@ from . import (
|
|||
setup_integration,
|
||||
)
|
||||
|
||||
from tests.common import MockConfigEntry, async_fire_time_changed
|
||||
from tests.common import MockConfigEntry, async_fire_time_changed, snapshot_platform
|
||||
|
||||
|
||||
@pytest.mark.freeze_time("2023-10-21")
|
||||
|
@ -36,15 +36,10 @@ async def test_all_entities(
|
|||
"""Test all entities."""
|
||||
with patch("homeassistant.components.withings.PLATFORMS", [Platform.SENSOR]):
|
||||
await setup_integration(hass, polling_config_entry)
|
||||
entity_entries = er.async_entries_for_config_entry(
|
||||
entity_registry, polling_config_entry.entry_id
|
||||
)
|
||||
|
||||
assert entity_entries
|
||||
for entity_entry in entity_entries:
|
||||
assert entity_entry == snapshot(name=f"{entity_entry.entity_id}-entry")
|
||||
assert (state := hass.states.get(entity_entry.entity_id))
|
||||
assert state == snapshot(name=f"{entity_entry.entity_id}-state")
|
||||
await snapshot_platform(
|
||||
hass, entity_registry, snapshot, polling_config_entry.entry_id
|
||||
)
|
||||
|
||||
|
||||
async def test_update_failed(
|
||||
|
|
Loading…
Add table
Reference in a new issue