Use device registry CONNECTION_* constants (#49923)
This commit is contained in:
parent
7ead482082
commit
77d5244577
16 changed files with 195 additions and 84 deletions
|
@ -14,7 +14,7 @@ from homeassistant.const import (
|
|||
CONF_WEBHOOK_ID,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import config_validation as cv
|
||||
from homeassistant.helpers import config_validation as cv, device_registry
|
||||
from homeassistant.helpers.dispatcher import (
|
||||
async_dispatcher_connect,
|
||||
async_dispatcher_send,
|
||||
|
@ -307,7 +307,9 @@ class MinutPointEntity(Entity):
|
|||
"""Return a device description for device registry."""
|
||||
device = self.device.device
|
||||
return {
|
||||
"connections": {("mac", device["device_mac"])},
|
||||
"connections": {
|
||||
(device_registry.CONNECTION_NETWORK_MAC, device["device_mac"])
|
||||
},
|
||||
"identifieres": device["device_id"],
|
||||
"manufacturer": "Minut",
|
||||
"model": f"Point v{device['hardware_version']}",
|
||||
|
|
|
@ -13,6 +13,7 @@ from hatasmota.discovery import (
|
|||
|
||||
import homeassistant.components.sensor as sensor
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import device_registry as dev_reg
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
||||
from homeassistant.helpers.entity_registry import async_entries_for_device
|
||||
|
||||
|
@ -136,7 +137,9 @@ async def async_start(
|
|||
|
||||
device_registry = await hass.helpers.device_registry.async_get_registry()
|
||||
entity_registry = await hass.helpers.entity_registry.async_get_registry()
|
||||
device = device_registry.async_get_device(set(), {("mac", mac)})
|
||||
device = device_registry.async_get_device(
|
||||
set(), {(dev_reg.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
if device is None:
|
||||
_LOGGER.warning("Got sensors for unknown device mac: %s", mac)
|
||||
|
|
|
@ -322,7 +322,8 @@ async def test_remove_orphaned_entries_service(hass, aioclient_mock):
|
|||
|
||||
device_registry = dr.async_get(hass)
|
||||
device = device_registry.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id, identifiers={("mac", "123")}
|
||||
config_entry_id=config_entry.entry_id,
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, "123")},
|
||||
)
|
||||
|
||||
assert (
|
||||
|
|
|
@ -24,7 +24,7 @@ DEFAULT_CONFIG_DEVICE_INFO_ID = {
|
|||
}
|
||||
|
||||
DEFAULT_CONFIG_DEVICE_INFO_MAC = {
|
||||
"connections": [["mac", "02:5b:26:a8:dc:12"]],
|
||||
"connections": [[dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12"]],
|
||||
"manufacturer": "Whatever",
|
||||
"name": "Beer",
|
||||
"model": "Glass",
|
||||
|
@ -760,9 +760,11 @@ async def help_test_entity_device_info_with_connection(hass, mqtt_mock, domain,
|
|||
async_fire_mqtt_message(hass, f"homeassistant/{domain}/bla/config", data)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device = registry.async_get_device(set(), {("mac", "02:5b:26:a8:dc:12")})
|
||||
device = registry.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12")}
|
||||
)
|
||||
assert device is not None
|
||||
assert device.connections == {("mac", "02:5b:26:a8:dc:12")}
|
||||
assert device.connections == {(dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12")}
|
||||
assert device.manufacturer == "Whatever"
|
||||
assert device.name == "Beer"
|
||||
assert device.model == "Glass"
|
||||
|
|
|
@ -846,7 +846,7 @@ async def test_entity_device_info_with_connection(hass, mqtt_mock):
|
|||
"type": "foo",
|
||||
"subtype": "bar",
|
||||
"device": {
|
||||
"connections": [["mac", "02:5b:26:a8:dc:12"]],
|
||||
"connections": [[dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12"]],
|
||||
"manufacturer": "Whatever",
|
||||
"name": "Beer",
|
||||
"model": "Glass",
|
||||
|
@ -857,9 +857,11 @@ async def test_entity_device_info_with_connection(hass, mqtt_mock):
|
|||
async_fire_mqtt_message(hass, "homeassistant/device_automation/bla/config", data)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device = registry.async_get_device(set(), {("mac", "02:5b:26:a8:dc:12")})
|
||||
device = registry.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12")}
|
||||
)
|
||||
assert device is not None
|
||||
assert device.connections == {("mac", "02:5b:26:a8:dc:12")}
|
||||
assert device.connections == {(dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12")}
|
||||
assert device.manufacturer == "Whatever"
|
||||
assert device.name == "Beer"
|
||||
assert device.model == "Glass"
|
||||
|
@ -908,7 +910,7 @@ async def test_entity_device_info_update(hass, mqtt_mock):
|
|||
"subtype": "bar",
|
||||
"device": {
|
||||
"identifiers": ["helloworld"],
|
||||
"connections": [["mac", "02:5b:26:a8:dc:12"]],
|
||||
"connections": [[dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12"]],
|
||||
"manufacturer": "Whatever",
|
||||
"name": "Beer",
|
||||
"model": "Glass",
|
||||
|
@ -1169,7 +1171,7 @@ async def test_trigger_debug_info(hass, mqtt_mock):
|
|||
"type": "foo",
|
||||
"subtype": "bar",
|
||||
"device": {
|
||||
"connections": [["mac", "02:5b:26:a8:dc:12"]],
|
||||
"connections": [[dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12"]],
|
||||
"manufacturer": "Whatever",
|
||||
"name": "Beer",
|
||||
"model": "Glass",
|
||||
|
@ -1180,7 +1182,9 @@ async def test_trigger_debug_info(hass, mqtt_mock):
|
|||
async_fire_mqtt_message(hass, "homeassistant/device_automation/bla/config", data)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device = registry.async_get_device(set(), {("mac", "02:5b:26:a8:dc:12")})
|
||||
device = registry.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12")}
|
||||
)
|
||||
assert device is not None
|
||||
|
||||
debug_info_data = await debug_info.info_for_device(hass, device.id)
|
||||
|
|
|
@ -245,12 +245,17 @@ def test_entity_device_info_schema():
|
|||
MQTT_ENTITY_DEVICE_INFO_SCHEMA({"identifiers": ["abcd"]})
|
||||
MQTT_ENTITY_DEVICE_INFO_SCHEMA({"identifiers": "abcd"})
|
||||
# just connection
|
||||
MQTT_ENTITY_DEVICE_INFO_SCHEMA({"connections": [["mac", "02:5b:26:a8:dc:12"]]})
|
||||
MQTT_ENTITY_DEVICE_INFO_SCHEMA(
|
||||
{"connections": [[dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12"]]}
|
||||
)
|
||||
# full device info
|
||||
MQTT_ENTITY_DEVICE_INFO_SCHEMA(
|
||||
{
|
||||
"identifiers": ["helloworld", "hello"],
|
||||
"connections": [["mac", "02:5b:26:a8:dc:12"], ["zigbee", "zigbee_id"]],
|
||||
"connections": [
|
||||
[dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12"],
|
||||
[dr.CONNECTION_ZIGBEE, "zigbee_id"],
|
||||
],
|
||||
"manufacturer": "Whatever",
|
||||
"name": "Beer",
|
||||
"model": "Glass",
|
||||
|
@ -261,7 +266,10 @@ def test_entity_device_info_schema():
|
|||
MQTT_ENTITY_DEVICE_INFO_SCHEMA(
|
||||
{
|
||||
"identifiers": ["helloworld", "hello"],
|
||||
"connections": [["mac", "02:5b:26:a8:dc:12"], ["zigbee", "zigbee_id"]],
|
||||
"connections": [
|
||||
[dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12"],
|
||||
[dr.CONNECTION_ZIGBEE, "zigbee_id"],
|
||||
],
|
||||
"manufacturer": "Whatever",
|
||||
"name": "Beer",
|
||||
"model": "Glass",
|
||||
|
|
|
@ -386,7 +386,7 @@ async def test_entity_device_info_with_connection(hass, mqtt_mock):
|
|||
{
|
||||
"topic": "test-topic",
|
||||
"device": {
|
||||
"connections": [["mac", "02:5b:26:a8:dc:12"]],
|
||||
"connections": [[dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12"]],
|
||||
"manufacturer": "Whatever",
|
||||
"name": "Beer",
|
||||
"model": "Glass",
|
||||
|
@ -397,9 +397,11 @@ async def test_entity_device_info_with_connection(hass, mqtt_mock):
|
|||
async_fire_mqtt_message(hass, "homeassistant/tag/bla/config", data)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device = registry.async_get_device(set(), {("mac", "02:5b:26:a8:dc:12")})
|
||||
device = registry.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12")}
|
||||
)
|
||||
assert device is not None
|
||||
assert device.connections == {("mac", "02:5b:26:a8:dc:12")}
|
||||
assert device.connections == {(dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12")}
|
||||
assert device.manufacturer == "Whatever"
|
||||
assert device.name == "Beer"
|
||||
assert device.model == "Glass"
|
||||
|
@ -442,7 +444,7 @@ async def test_entity_device_info_update(hass, mqtt_mock):
|
|||
"topic": "test-topic",
|
||||
"device": {
|
||||
"identifiers": ["helloworld"],
|
||||
"connections": [["mac", "02:5b:26:a8:dc:12"]],
|
||||
"connections": [[dr.CONNECTION_NETWORK_MAC, "02:5b:26:a8:dc:12"]],
|
||||
"manufacturer": "Whatever",
|
||||
"name": "Beer",
|
||||
"model": "Glass",
|
||||
|
|
|
@ -58,7 +58,7 @@ async def test_device_registry(hass, config_entry, config, soco):
|
|||
)
|
||||
assert reg_device.model == "Model Name"
|
||||
assert reg_device.sw_version == "49.2-64250"
|
||||
assert reg_device.connections == {("mac", "00:11:22:33:44:55")}
|
||||
assert reg_device.connections == {(dr.CONNECTION_NETWORK_MAC, "00:11:22:33:44:55")}
|
||||
assert reg_device.manufacturer == "Sonos"
|
||||
assert reg_device.suggested_area == "Zone A"
|
||||
assert reg_device.name == "Zone A"
|
||||
|
|
|
@ -382,7 +382,9 @@ async def help_test_discovery_removal(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device and entity registry entries are created
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", config1[CONF_MAC])})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, config1[CONF_MAC])}
|
||||
)
|
||||
assert device_entry is not None
|
||||
entity_entry = entity_reg.async_get(f"{domain}.{entity_id}")
|
||||
assert entity_entry is not None
|
||||
|
@ -403,7 +405,9 @@ async def help_test_discovery_removal(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify entity registry entries are cleared
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", config2[CONF_MAC])})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, config2[CONF_MAC])}
|
||||
)
|
||||
assert device_entry is not None
|
||||
entity_entry = entity_reg.async_get(f"{domain}.{entity_id}")
|
||||
assert entity_entry is None
|
||||
|
@ -487,14 +491,18 @@ async def help_test_discovery_device_remove(
|
|||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device = device_reg.async_get_device(set(), {("mac", config[CONF_MAC])})
|
||||
device = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, config[CONF_MAC])}
|
||||
)
|
||||
assert device is not None
|
||||
assert entity_reg.async_get_entity_id(domain, "tasmota", unique_id)
|
||||
|
||||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{config[CONF_MAC]}/config", "")
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device = device_reg.async_get_device(set(), {("mac", config[CONF_MAC])})
|
||||
device = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, config[CONF_MAC])}
|
||||
)
|
||||
assert device is None
|
||||
assert not entity_reg.async_get_entity_id(domain, "tasmota", unique_id)
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import pytest
|
|||
import homeassistant.components.automation as automation
|
||||
from homeassistant.components.tasmota.const import DEFAULT_PREFIX, DOMAIN
|
||||
from homeassistant.components.tasmota.device_trigger import async_attach_trigger
|
||||
from homeassistant.helpers import device_registry as dr
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
from .test_common import DEFAULT_CONFIG
|
||||
|
@ -33,7 +34,9 @@ async def test_get_triggers_btn(hass, device_reg, entity_reg, mqtt_mock, setup_t
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
expected_triggers = [
|
||||
{
|
||||
"platform": "device",
|
||||
|
@ -65,7 +68,9 @@ async def test_get_triggers_swc(hass, device_reg, entity_reg, mqtt_mock, setup_t
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
expected_triggers = [
|
||||
{
|
||||
"platform": "device",
|
||||
|
@ -92,7 +97,9 @@ async def test_get_unknown_triggers(
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
assert await async_setup_component(
|
||||
hass,
|
||||
|
@ -133,7 +140,9 @@ async def test_get_non_existing_triggers(
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config1))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
triggers = await async_get_device_automations(hass, "trigger", device_entry.id)
|
||||
assert_lists_same(triggers, [])
|
||||
|
||||
|
@ -157,7 +166,9 @@ async def test_discover_bad_triggers(
|
|||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
triggers = await async_get_device_automations(hass, "trigger", device_entry.id)
|
||||
assert_lists_same(triggers, [])
|
||||
|
||||
|
@ -189,7 +200,9 @@ async def test_discover_bad_triggers(
|
|||
)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
triggers = await async_get_device_automations(hass, "trigger", device_entry.id)
|
||||
assert_lists_same(triggers, [])
|
||||
|
||||
|
@ -231,7 +244,9 @@ async def test_update_remove_triggers(
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config1))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
expected_triggers1 = [
|
||||
{
|
||||
|
@ -287,7 +302,9 @@ async def test_if_fires_on_mqtt_message_btn(
|
|||
|
||||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config))
|
||||
await hass.async_block_till_done()
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
assert await async_setup_component(
|
||||
hass,
|
||||
|
@ -357,7 +374,9 @@ async def test_if_fires_on_mqtt_message_swc(
|
|||
|
||||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config))
|
||||
await hass.async_block_till_done()
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
assert await async_setup_component(
|
||||
hass,
|
||||
|
@ -453,7 +472,9 @@ async def test_if_fires_on_mqtt_message_late_discover(
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config1))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
assert await async_setup_component(
|
||||
hass,
|
||||
|
@ -527,7 +548,9 @@ async def test_if_fires_on_mqtt_message_after_update(
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config1))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
assert await async_setup_component(
|
||||
hass,
|
||||
|
@ -604,7 +627,9 @@ async def test_no_resubscribe_same_topic(hass, device_reg, mqtt_mock, setup_tasm
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
assert await async_setup_component(
|
||||
hass,
|
||||
|
@ -650,7 +675,9 @@ async def test_not_fires_on_mqtt_message_after_remove_by_mqtt(
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
assert await async_setup_component(
|
||||
hass,
|
||||
|
@ -719,7 +746,9 @@ async def test_not_fires_on_mqtt_message_after_remove_from_registry(
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
assert await async_setup_component(
|
||||
hass,
|
||||
|
@ -774,7 +803,9 @@ async def test_attach_remove(hass, device_reg, mqtt_mock, setup_tasmota):
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
calls = []
|
||||
|
||||
|
@ -829,7 +860,9 @@ async def test_attach_remove_late(hass, device_reg, mqtt_mock, setup_tasmota):
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config1))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
calls = []
|
||||
|
||||
|
@ -894,7 +927,9 @@ async def test_attach_remove_late2(hass, device_reg, mqtt_mock, setup_tasmota):
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config1))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
calls = []
|
||||
|
||||
|
@ -940,7 +975,9 @@ async def test_attach_remove_unknown1(hass, device_reg, mqtt_mock, setup_tasmota
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config1))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
remove = await async_attach_trigger(
|
||||
hass,
|
||||
|
@ -982,7 +1019,9 @@ async def test_attach_unknown_remove_device_from_registry(
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config1))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
await async_attach_trigger(
|
||||
hass,
|
||||
|
@ -1015,7 +1054,9 @@ async def test_attach_remove_config_entry(hass, device_reg, mqtt_mock, setup_tas
|
|||
async_fire_mqtt_message(hass, f"{DEFAULT_PREFIX}/{mac}/config", json.dumps(config))
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
|
||||
calls = []
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ from unittest.mock import patch
|
|||
|
||||
from homeassistant.components.tasmota.const import DEFAULT_PREFIX
|
||||
from homeassistant.components.tasmota.discovery import ALREADY_DISCOVERED
|
||||
from homeassistant.helpers import device_registry as dr
|
||||
|
||||
from .conftest import setup_tasmota_helper
|
||||
from .test_common import DEFAULT_CONFIG, DEFAULT_CONFIG_9_0_0_3
|
||||
|
@ -116,7 +117,9 @@ async def test_correct_config_discovery(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device and registry entries are created
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is not None
|
||||
entity_entry = entity_reg.async_get("switch.test")
|
||||
assert entity_entry is not None
|
||||
|
@ -143,7 +146,9 @@ async def test_device_discover(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device and registry entries are created
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is not None
|
||||
assert device_entry.manufacturer == "Tasmota"
|
||||
assert device_entry.model == config["md"]
|
||||
|
@ -166,7 +171,9 @@ async def test_device_discover_deprecated(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device and registry entries are created
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is not None
|
||||
assert device_entry.manufacturer == "Tasmota"
|
||||
assert device_entry.model == config["md"]
|
||||
|
@ -192,7 +199,9 @@ async def test_device_update(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device entry is created
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is not None
|
||||
|
||||
# Update device parameters
|
||||
|
@ -208,7 +217,9 @@ async def test_device_update(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device entry is updated
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is not None
|
||||
assert device_entry.model == "Another model"
|
||||
assert device_entry.name == "Another name"
|
||||
|
@ -230,7 +241,9 @@ async def test_device_remove(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device entry is created
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is not None
|
||||
|
||||
async_fire_mqtt_message(
|
||||
|
@ -241,7 +254,9 @@ async def test_device_remove(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device entry is removed
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is None
|
||||
|
||||
|
||||
|
@ -254,18 +269,22 @@ async def test_device_remove_stale(hass, mqtt_mock, caplog, device_reg, setup_ta
|
|||
# Create a device
|
||||
device_reg.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
connections={("mac", mac)},
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, mac)},
|
||||
)
|
||||
|
||||
# Verify device entry was created
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is not None
|
||||
|
||||
# Remove the device
|
||||
device_reg.async_remove_device(device_entry.id)
|
||||
|
||||
# Verify device entry is removed
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is None
|
||||
|
||||
|
||||
|
@ -284,7 +303,9 @@ async def test_device_rediscover(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device entry is created
|
||||
device_entry1 = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry1 = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry1 is not None
|
||||
|
||||
async_fire_mqtt_message(
|
||||
|
@ -295,7 +316,9 @@ async def test_device_rediscover(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device entry is removed
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is None
|
||||
|
||||
async_fire_mqtt_message(
|
||||
|
@ -306,7 +329,9 @@ async def test_device_rediscover(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device entry is created, and id is reused
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is not None
|
||||
assert device_entry1.id == device_entry.id
|
||||
|
||||
|
|
|
@ -5,6 +5,7 @@ from unittest.mock import call
|
|||
|
||||
from homeassistant.components import websocket_api
|
||||
from homeassistant.components.tasmota.const import DEFAULT_PREFIX
|
||||
from homeassistant.helpers import device_registry as dr
|
||||
|
||||
from .test_common import DEFAULT_CONFIG
|
||||
|
||||
|
@ -22,14 +23,18 @@ async def test_device_remove(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device entry is created
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is not None
|
||||
|
||||
device_reg.async_remove_device(device_entry.id)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device entry is removed
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is None
|
||||
|
||||
# Verify retained discovery topic has been cleared
|
||||
|
@ -52,7 +57,7 @@ async def test_device_remove_non_tasmota_device(
|
|||
mac = "12:34:56:AB:CD:EF"
|
||||
device_entry = device_reg.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
connections={("mac", mac)},
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, mac)},
|
||||
)
|
||||
assert device_entry is not None
|
||||
|
||||
|
@ -60,7 +65,9 @@ async def test_device_remove_non_tasmota_device(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device entry is removed
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is None
|
||||
|
||||
# Verify no Tasmota discovery message was sent
|
||||
|
@ -76,7 +83,7 @@ async def test_device_remove_stale_tasmota_device(
|
|||
mac = "12:34:56:AB:CD:EF"
|
||||
device_entry = device_reg.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
connections={("mac", mac)},
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, mac)},
|
||||
)
|
||||
assert device_entry is not None
|
||||
|
||||
|
@ -84,7 +91,9 @@ async def test_device_remove_stale_tasmota_device(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device entry is removed
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is None
|
||||
|
||||
# Verify retained discovery topic has been cleared
|
||||
|
@ -109,7 +118,9 @@ async def test_tasmota_ws_remove_discovered_device(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device entry is created
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is not None
|
||||
|
||||
client = await hass_ws_client(hass)
|
||||
|
@ -120,7 +131,9 @@ async def test_tasmota_ws_remove_discovered_device(
|
|||
assert response["success"]
|
||||
|
||||
# Verify device entry is cleared
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is None
|
||||
|
||||
|
||||
|
@ -135,7 +148,9 @@ async def test_tasmota_ws_remove_discovered_device_twice(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
# Verify device entry is created
|
||||
device_entry = device_reg.async_get_device(set(), {("mac", mac)})
|
||||
device_entry = device_reg.async_get_device(
|
||||
set(), {(dr.CONNECTION_NETWORK_MAC, mac)}
|
||||
)
|
||||
assert device_entry is not None
|
||||
|
||||
client = await hass_ws_client(hass)
|
||||
|
@ -163,7 +178,7 @@ async def test_tasmota_ws_remove_non_tasmota_device(
|
|||
|
||||
device_entry = device_reg.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
connections={("mac", "12:34:56:AB:CD:EF")},
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")},
|
||||
)
|
||||
assert device_entry is not None
|
||||
|
||||
|
|
|
@ -1222,11 +1222,11 @@ async def test_disable_config_entry_disables_devices(hass, registry):
|
|||
|
||||
entry1 = registry.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
connections={("mac", "12:34:56:AB:CD:EF")},
|
||||
connections={(device_registry.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")},
|
||||
)
|
||||
entry2 = registry.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
connections={("mac", "34:56:AB:CD:EF:12")},
|
||||
connections={(device_registry.CONNECTION_NETWORK_MAC, "34:56:AB:CD:EF:12")},
|
||||
disabled_by=device_registry.DISABLED_USER,
|
||||
)
|
||||
|
||||
|
|
|
@ -821,7 +821,7 @@ async def test_device_info_called(hass):
|
|||
unique_id="qwer",
|
||||
device_info={
|
||||
"identifiers": {("hue", "1234")},
|
||||
"connections": {("mac", "abcd")},
|
||||
"connections": {(dr.CONNECTION_NETWORK_MAC, "abcd")},
|
||||
"manufacturer": "test-manuf",
|
||||
"model": "test-model",
|
||||
"name": "test-name",
|
||||
|
@ -849,7 +849,7 @@ async def test_device_info_called(hass):
|
|||
device = registry.async_get_device({("hue", "1234")})
|
||||
assert device is not None
|
||||
assert device.identifiers == {("hue", "1234")}
|
||||
assert device.connections == {("mac", "abcd")}
|
||||
assert device.connections == {(dr.CONNECTION_NETWORK_MAC, "abcd")}
|
||||
assert device.manufacturer == "test-manuf"
|
||||
assert device.model == "test-model"
|
||||
assert device.name == "test-name"
|
||||
|
@ -864,7 +864,7 @@ async def test_device_info_not_overrides(hass):
|
|||
registry = dr.async_get(hass)
|
||||
device = registry.async_get_or_create(
|
||||
config_entry_id="bla",
|
||||
connections={("mac", "abcd")},
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, "abcd")},
|
||||
manufacturer="test-manufacturer",
|
||||
model="test-model",
|
||||
)
|
||||
|
@ -879,7 +879,7 @@ async def test_device_info_not_overrides(hass):
|
|||
MockEntity(
|
||||
unique_id="qwer",
|
||||
device_info={
|
||||
"connections": {("mac", "abcd")},
|
||||
"connections": {(dr.CONNECTION_NETWORK_MAC, "abcd")},
|
||||
"default_name": "default name 1",
|
||||
"default_model": "default model 1",
|
||||
"default_manufacturer": "default manufacturer 1",
|
||||
|
@ -898,7 +898,7 @@ async def test_device_info_not_overrides(hass):
|
|||
assert await entity_platform.async_setup_entry(config_entry)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
device2 = registry.async_get_device(set(), {("mac", "abcd")})
|
||||
device2 = registry.async_get_device(set(), {(dr.CONNECTION_NETWORK_MAC, "abcd")})
|
||||
assert device2 is not None
|
||||
assert device.id == device2.id
|
||||
assert device2.manufacturer == "test-manufacturer"
|
||||
|
|
|
@ -6,7 +6,7 @@ import pytest
|
|||
from homeassistant import config_entries
|
||||
from homeassistant.const import EVENT_HOMEASSISTANT_START, STATE_UNAVAILABLE
|
||||
from homeassistant.core import CoreState, callback, valid_entity_id
|
||||
from homeassistant.helpers import entity_registry as er
|
||||
from homeassistant.helpers import device_registry as dr, entity_registry as er
|
||||
|
||||
from tests.common import (
|
||||
MockConfigEntry,
|
||||
|
@ -686,7 +686,7 @@ async def test_remove_device_removes_entities(hass, registry):
|
|||
|
||||
device_entry = device_registry.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
connections={("mac", "12:34:56:AB:CD:EF")},
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")},
|
||||
)
|
||||
|
||||
entry = registry.async_get_or_create(
|
||||
|
@ -713,13 +713,13 @@ async def test_update_device_race(hass, registry):
|
|||
# Create device
|
||||
device_entry = device_registry.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
connections={("mac", "12:34:56:AB:CD:EF")},
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")},
|
||||
)
|
||||
# Update it
|
||||
device_registry.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
identifiers={("bridgeid", "0123")},
|
||||
connections={("mac", "12:34:56:AB:CD:EF")},
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")},
|
||||
)
|
||||
# Add entity to the device
|
||||
entry = registry.async_get_or_create(
|
||||
|
@ -746,7 +746,7 @@ async def test_disable_device_disables_entities(hass, registry):
|
|||
|
||||
device_entry = device_registry.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
connections={("mac", "12:34:56:AB:CD:EF")},
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")},
|
||||
)
|
||||
|
||||
entry1 = registry.async_get_or_create(
|
||||
|
@ -811,7 +811,7 @@ async def test_disable_config_entry_disables_entities(hass, registry):
|
|||
|
||||
device_entry = device_registry.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
connections={("mac", "12:34:56:AB:CD:EF")},
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")},
|
||||
)
|
||||
|
||||
entry1 = registry.async_get_or_create(
|
||||
|
@ -877,7 +877,7 @@ async def test_disabled_entities_excluded_from_entity_list(hass, registry):
|
|||
|
||||
device_entry = device_registry.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
connections={("mac", "12:34:56:AB:CD:EF")},
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")},
|
||||
)
|
||||
|
||||
entry1 = registry.async_get_or_create(
|
||||
|
|
|
@ -19,7 +19,7 @@ from homeassistant.const import (
|
|||
VOLUME_LITERS,
|
||||
)
|
||||
from homeassistant.exceptions import TemplateError
|
||||
from homeassistant.helpers import template
|
||||
from homeassistant.helpers import device_registry as dr, template
|
||||
from homeassistant.setup import async_setup_component
|
||||
import homeassistant.util.dt as dt_util
|
||||
from homeassistant.util.unit_system import UnitSystem
|
||||
|
@ -1504,7 +1504,7 @@ async def test_device_entities(hass):
|
|||
# Test device without entities
|
||||
device_entry = device_registry.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
connections={("mac", "12:34:56:AB:CD:EF")},
|
||||
connections={(dr.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")},
|
||||
)
|
||||
info = render_to_info(hass, f"{{{{ device_entities('{device_entry.id}') }}}}")
|
||||
assert_result_info(info, [])
|
||||
|
|
Loading…
Add table
Reference in a new issue