mirror of
https://github.com/home-assistant/core.git
synced 2025-04-25 01:38:02 +00:00
Store wemo device sw_version & upnp connections (#62758)
This commit is contained in:
parent
c37077aa9b
commit
a1be11a492
@ -16,7 +16,10 @@ from homeassistant.const import (
|
||||
CONF_UNIQUE_ID,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.helpers.device_registry import async_get as async_get_device_registry
|
||||
from homeassistant.helpers.device_registry import (
|
||||
CONNECTION_UPNP,
|
||||
async_get as async_get_device_registry,
|
||||
)
|
||||
from homeassistant.helpers.entity import DeviceInfo
|
||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
||||
|
||||
@ -123,10 +126,12 @@ class DeviceCoordinator(DataUpdateCoordinator):
|
||||
|
||||
def _device_info(wemo: WeMoDevice) -> DeviceInfo:
|
||||
return DeviceInfo(
|
||||
connections={(CONNECTION_UPNP, wemo.udn)},
|
||||
identifiers={(DOMAIN, wemo.serialnumber)},
|
||||
manufacturer="Belkin",
|
||||
model=wemo.model_name,
|
||||
name=wemo.name,
|
||||
sw_version=wemo.firmware_version,
|
||||
)
|
||||
|
||||
|
||||
|
@ -14,6 +14,7 @@ MOCK_HOST = "127.0.0.1"
|
||||
MOCK_PORT = 50000
|
||||
MOCK_NAME = "WemoDeviceName"
|
||||
MOCK_SERIAL_NUMBER = "WemoSerialNumber"
|
||||
MOCK_FIRMWARE_VERSION = "WeMo_WW_2.00.XXXXX.PVT-OWRT"
|
||||
|
||||
|
||||
@pytest.fixture(name="pywemo_model")
|
||||
@ -58,6 +59,8 @@ def pywemo_device_fixture(pywemo_registry, pywemo_model):
|
||||
device.name = MOCK_NAME
|
||||
device.serialnumber = MOCK_SERIAL_NUMBER
|
||||
device.model_name = pywemo_model.replace("LongPress", "")
|
||||
device.udn = f"uuid:{device.model_name}-1_0-{device.serialnumber}"
|
||||
device.firmware_version = MOCK_FIRMWARE_VERSION
|
||||
device.get_state.return_value = 0 # Default to Off
|
||||
device.supports_long_press.return_value = cls.supports_long_press()
|
||||
|
||||
|
@ -10,7 +10,13 @@ from homeassistant.helpers import entity_registry as er
|
||||
from homeassistant.setup import async_setup_component
|
||||
from homeassistant.util import dt
|
||||
|
||||
from .conftest import MOCK_HOST, MOCK_NAME, MOCK_PORT, MOCK_SERIAL_NUMBER
|
||||
from .conftest import (
|
||||
MOCK_FIRMWARE_VERSION,
|
||||
MOCK_HOST,
|
||||
MOCK_NAME,
|
||||
MOCK_PORT,
|
||||
MOCK_SERIAL_NUMBER,
|
||||
)
|
||||
|
||||
from tests.common import async_fire_time_changed
|
||||
|
||||
@ -109,6 +115,8 @@ async def test_discovery(hass, pywemo_registry):
|
||||
device.name = f"{MOCK_NAME}_{counter}"
|
||||
device.serialnumber = f"{MOCK_SERIAL_NUMBER}_{counter}"
|
||||
device.model_name = "Motion"
|
||||
device.udn = f"uuid:{device.model_name}-1_0-{device.serialnumber}"
|
||||
device.firmware_version = MOCK_FIRMWARE_VERSION
|
||||
device.get_state.return_value = 0 # Default to Off
|
||||
device.supports_long_press.return_value = False
|
||||
return device
|
||||
|
@ -17,7 +17,7 @@ from homeassistant.helpers.update_coordinator import UpdateFailed
|
||||
from homeassistant.setup import async_setup_component
|
||||
from homeassistant.util.dt import utcnow
|
||||
|
||||
from .conftest import MOCK_HOST
|
||||
from .conftest import MOCK_FIRMWARE_VERSION, MOCK_HOST, MOCK_SERIAL_NUMBER
|
||||
|
||||
from tests.common import async_fire_time_changed
|
||||
|
||||
@ -154,6 +154,20 @@ async def test_async_update_data_subscribed(
|
||||
pywemo_device.get_state.assert_not_called()
|
||||
|
||||
|
||||
async def test_device_info(hass, wemo_entity):
|
||||
"""Verify the DeviceInfo data is set properly."""
|
||||
dr = device_registry.async_get(hass)
|
||||
device_entries = list(dr.devices.values())
|
||||
|
||||
assert len(device_entries) == 1
|
||||
assert device_entries[0].connections == {
|
||||
("upnp", f"uuid:LightSwitch-1_0-{MOCK_SERIAL_NUMBER}")
|
||||
}
|
||||
assert device_entries[0].manufacturer == "Belkin"
|
||||
assert device_entries[0].model == "LightSwitch"
|
||||
assert device_entries[0].sw_version == MOCK_FIRMWARE_VERSION
|
||||
|
||||
|
||||
class TestInsight:
|
||||
"""Tests specific to the WeMo Insight device."""
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user