mirror of
https://github.com/elisspace/core.git
synced 2026-10-02 15:30:00 +00:00
Add snapshot testing support
This commit is contained in:
@@ -28,6 +28,7 @@ from homeassistant.helpers import (
|
||||
area_registry as ar,
|
||||
device_registry as dr,
|
||||
entity_registry as er,
|
||||
folder_registry as fr,
|
||||
issue_registry as ir,
|
||||
)
|
||||
|
||||
@@ -64,6 +65,10 @@ class FlowResultSnapshot(dict):
|
||||
"""Tiny wrapper to represent a flow result in snapshots."""
|
||||
|
||||
|
||||
class FolderRegistryEntrySnapshot(dict):
|
||||
"""Tiny wrapper to represent an folder registry entry in snapshots."""
|
||||
|
||||
|
||||
class IssueRegistryItemSnapshot(dict):
|
||||
"""Tiny wrapper to represent an entity registry entry in snapshots."""
|
||||
|
||||
@@ -101,6 +106,8 @@ class HomeAssistantSnapshotSerializer(AmberDataSerializer):
|
||||
serializable_data = cls._serializable_device_registry_entry(data)
|
||||
elif isinstance(data, er.RegistryEntry):
|
||||
serializable_data = cls._serializable_entity_registry_entry(data)
|
||||
elif isinstance(data, fr.FolderEntry):
|
||||
serializable_data = cls._serializable_issue_registry_entry(data)
|
||||
elif isinstance(data, ir.IssueEntry):
|
||||
serializable_data = cls._serializable_issue_registry_entry(data)
|
||||
elif isinstance(data, dict) and "flow_id" in data and "handler" in data:
|
||||
@@ -182,6 +189,13 @@ class HomeAssistantSnapshotSerializer(AmberDataSerializer):
|
||||
"""Prepare a Home Assistant flow result for serialization."""
|
||||
return FlowResultSnapshot(data | {"flow_id": ANY})
|
||||
|
||||
@classmethod
|
||||
def _serializable_folder_registry_entry(
|
||||
cls, data: fr.FolderEntry
|
||||
) -> SerializableData:
|
||||
"""Prepare a Home Assistant folder registry entry for serialization."""
|
||||
return FolderRegistryEntrySnapshot(dataclasses.asdict(data))
|
||||
|
||||
@classmethod
|
||||
def _serializable_issue_registry_entry(
|
||||
cls, data: ir.IssueEntry
|
||||
|
||||
Reference in New Issue
Block a user