mirror of
https://github.com/home-assistant/core.git
synced 2025-12-26 22:18:40 +00:00
Improve some device registry tests (#77659)
This commit is contained in:
@@ -83,6 +83,7 @@ class DeviceEntry:
|
||||
connections: set[tuple[str, str]] = attr.ib(converter=set, factory=set)
|
||||
disabled_by: DeviceEntryDisabler | None = attr.ib(default=None)
|
||||
entry_type: DeviceEntryType | None = attr.ib(default=None)
|
||||
hw_version: str | None = attr.ib(default=None)
|
||||
id: str = attr.ib(factory=uuid_util.random_uuid_hex)
|
||||
identifiers: set[tuple[str, str]] = attr.ib(converter=set, factory=set)
|
||||
manufacturer: str | None = attr.ib(default=None)
|
||||
@@ -91,7 +92,6 @@ class DeviceEntry:
|
||||
name: str | None = attr.ib(default=None)
|
||||
suggested_area: str | None = attr.ib(default=None)
|
||||
sw_version: str | None = attr.ib(default=None)
|
||||
hw_version: str | None = attr.ib(default=None)
|
||||
via_device_id: str | None = attr.ib(default=None)
|
||||
# This value is not stored, just used to keep track of events to fire.
|
||||
is_new: bool = attr.ib(default=False)
|
||||
@@ -318,13 +318,13 @@ class DeviceRegistry:
|
||||
# To disable a device if it gets created
|
||||
disabled_by: DeviceEntryDisabler | None | UndefinedType = UNDEFINED,
|
||||
entry_type: DeviceEntryType | None | UndefinedType = UNDEFINED,
|
||||
hw_version: str | None | UndefinedType = UNDEFINED,
|
||||
identifiers: set[tuple[str, str]] | None = None,
|
||||
manufacturer: str | None | UndefinedType = UNDEFINED,
|
||||
model: str | None | UndefinedType = UNDEFINED,
|
||||
name: str | None | UndefinedType = UNDEFINED,
|
||||
suggested_area: str | None | UndefinedType = UNDEFINED,
|
||||
sw_version: str | None | UndefinedType = UNDEFINED,
|
||||
hw_version: str | None | UndefinedType = UNDEFINED,
|
||||
via_device: tuple[str, str] | None = None,
|
||||
) -> DeviceEntry:
|
||||
"""Get device. Create if it doesn't exist."""
|
||||
@@ -382,6 +382,7 @@ class DeviceRegistry:
|
||||
configuration_url=configuration_url,
|
||||
disabled_by=disabled_by,
|
||||
entry_type=entry_type,
|
||||
hw_version=hw_version,
|
||||
manufacturer=manufacturer,
|
||||
merge_connections=connections or UNDEFINED,
|
||||
merge_identifiers=identifiers or UNDEFINED,
|
||||
@@ -389,7 +390,6 @@ class DeviceRegistry:
|
||||
name=name,
|
||||
suggested_area=suggested_area,
|
||||
sw_version=sw_version,
|
||||
hw_version=hw_version,
|
||||
via_device_id=via_device_id,
|
||||
)
|
||||
|
||||
@@ -408,6 +408,7 @@ class DeviceRegistry:
|
||||
configuration_url: str | None | UndefinedType = UNDEFINED,
|
||||
disabled_by: DeviceEntryDisabler | None | UndefinedType = UNDEFINED,
|
||||
entry_type: DeviceEntryType | None | UndefinedType = UNDEFINED,
|
||||
hw_version: str | None | UndefinedType = UNDEFINED,
|
||||
manufacturer: str | None | UndefinedType = UNDEFINED,
|
||||
merge_connections: set[tuple[str, str]] | UndefinedType = UNDEFINED,
|
||||
merge_identifiers: set[tuple[str, str]] | UndefinedType = UNDEFINED,
|
||||
@@ -418,7 +419,6 @@ class DeviceRegistry:
|
||||
remove_config_entry_id: str | UndefinedType = UNDEFINED,
|
||||
suggested_area: str | None | UndefinedType = UNDEFINED,
|
||||
sw_version: str | None | UndefinedType = UNDEFINED,
|
||||
hw_version: str | None | UndefinedType = UNDEFINED,
|
||||
via_device_id: str | None | UndefinedType = UNDEFINED,
|
||||
) -> DeviceEntry | None:
|
||||
"""Update device attributes."""
|
||||
@@ -492,17 +492,17 @@ class DeviceRegistry:
|
||||
old_values["identifiers"] = old.identifiers
|
||||
|
||||
for attr_name, value in (
|
||||
("area_id", area_id),
|
||||
("configuration_url", configuration_url),
|
||||
("disabled_by", disabled_by),
|
||||
("entry_type", entry_type),
|
||||
("hw_version", hw_version),
|
||||
("manufacturer", manufacturer),
|
||||
("model", model),
|
||||
("name", name),
|
||||
("name_by_user", name_by_user),
|
||||
("area_id", area_id),
|
||||
("suggested_area", suggested_area),
|
||||
("sw_version", sw_version),
|
||||
("hw_version", hw_version),
|
||||
("via_device_id", via_device_id),
|
||||
):
|
||||
if value is not UNDEFINED and value != getattr(old, attr_name):
|
||||
@@ -584,6 +584,7 @@ class DeviceRegistry:
|
||||
entry_type=DeviceEntryType(device["entry_type"])
|
||||
if device["entry_type"]
|
||||
else None,
|
||||
hw_version=device["hw_version"],
|
||||
id=device["id"],
|
||||
identifiers={tuple(iden) for iden in device["identifiers"]}, # type: ignore[misc]
|
||||
manufacturer=device["manufacturer"],
|
||||
@@ -591,7 +592,6 @@ class DeviceRegistry:
|
||||
name_by_user=device["name_by_user"],
|
||||
name=device["name"],
|
||||
sw_version=device["sw_version"],
|
||||
hw_version=device["hw_version"],
|
||||
via_device_id=device["via_device_id"],
|
||||
)
|
||||
# Introduced in 0.111
|
||||
@@ -617,25 +617,25 @@ class DeviceRegistry:
|
||||
@callback
|
||||
def _data_to_save(self) -> dict[str, list[dict[str, Any]]]:
|
||||
"""Return data of device registry to store in a file."""
|
||||
data = {}
|
||||
data: dict[str, list[dict[str, Any]]] = {}
|
||||
|
||||
data["devices"] = [
|
||||
{
|
||||
"area_id": entry.area_id,
|
||||
"config_entries": list(entry.config_entries),
|
||||
"configuration_url": entry.configuration_url,
|
||||
"connections": list(entry.connections),
|
||||
"disabled_by": entry.disabled_by,
|
||||
"entry_type": entry.entry_type,
|
||||
"hw_version": entry.hw_version,
|
||||
"id": entry.id,
|
||||
"identifiers": list(entry.identifiers),
|
||||
"manufacturer": entry.manufacturer,
|
||||
"model": entry.model,
|
||||
"name_by_user": entry.name_by_user,
|
||||
"name": entry.name,
|
||||
"sw_version": entry.sw_version,
|
||||
"hw_version": entry.hw_version,
|
||||
"entry_type": entry.entry_type,
|
||||
"id": entry.id,
|
||||
"via_device_id": entry.via_device_id,
|
||||
"area_id": entry.area_id,
|
||||
"name_by_user": entry.name_by_user,
|
||||
"disabled_by": entry.disabled_by,
|
||||
"configuration_url": entry.configuration_url,
|
||||
}
|
||||
for entry in self.devices.values()
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user