mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 21:06:19 +00:00
Add WebSocket support for handling labels on device registry (#113758)
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
"""Test device_registry API."""
|
||||
|
||||
import pytest
|
||||
from pytest_unordered import unordered
|
||||
|
||||
from homeassistant.components.config import device_registry
|
||||
from homeassistant.core import HomeAssistant
|
||||
@@ -64,6 +65,7 @@ async def test_list_devices(
|
||||
"entry_type": None,
|
||||
"hw_version": None,
|
||||
"identifiers": [["bridgeid", "0123"]],
|
||||
"labels": [],
|
||||
"manufacturer": "manufacturer",
|
||||
"model": "model",
|
||||
"name_by_user": None,
|
||||
@@ -81,6 +83,7 @@ async def test_list_devices(
|
||||
"entry_type": dr.DeviceEntryType.SERVICE,
|
||||
"hw_version": None,
|
||||
"identifiers": [["bridgeid", "1234"]],
|
||||
"labels": [],
|
||||
"manufacturer": "manufacturer",
|
||||
"model": "model",
|
||||
"name_by_user": None,
|
||||
@@ -111,6 +114,7 @@ async def test_list_devices(
|
||||
"hw_version": None,
|
||||
"id": device1.id,
|
||||
"identifiers": [["bridgeid", "0123"]],
|
||||
"labels": [],
|
||||
"manufacturer": "manufacturer",
|
||||
"model": "model",
|
||||
"name_by_user": None,
|
||||
@@ -180,6 +184,45 @@ async def test_update_device(
|
||||
assert isinstance(device.disabled_by, (dr.DeviceEntryDisabler, type(None)))
|
||||
|
||||
|
||||
async def test_update_device_labels(
|
||||
hass: HomeAssistant,
|
||||
client: MockHAClientWebSocket,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
) -> None:
|
||||
"""Test update entry labels."""
|
||||
entry = MockConfigEntry(title=None)
|
||||
entry.add_to_hass(hass)
|
||||
device = device_registry.async_get_or_create(
|
||||
config_entry_id=entry.entry_id,
|
||||
connections={("ethernet", "12:34:56:78:90:AB:CD:EF")},
|
||||
identifiers={("bridgeid", "0123")},
|
||||
manufacturer="manufacturer",
|
||||
model="model",
|
||||
)
|
||||
|
||||
assert not device.labels
|
||||
|
||||
await client.send_json_auto_id(
|
||||
{
|
||||
"type": "config/device_registry/update",
|
||||
"device_id": device.id,
|
||||
"labels": ["label1", "label2"],
|
||||
}
|
||||
)
|
||||
|
||||
msg = await client.receive_json()
|
||||
await hass.async_block_till_done()
|
||||
assert len(device_registry.devices) == 1
|
||||
|
||||
device = device_registry.async_get_device(
|
||||
identifiers={("bridgeid", "0123")},
|
||||
connections={("ethernet", "12:34:56:78:90:AB:CD:EF")},
|
||||
)
|
||||
|
||||
assert msg["result"]["labels"] == unordered(["label1", "label2"])
|
||||
assert device.labels == {"label1", "label2"}
|
||||
|
||||
|
||||
async def test_remove_config_entry_from_device(
|
||||
hass: HomeAssistant,
|
||||
hass_ws_client: WebSocketGenerator,
|
||||
|
||||
Reference in New Issue
Block a user