Add one UniFi sensor test to validate entity attributes (#119914)
This commit is contained in:
parent
e1a6ac59e1
commit
ed7a888c07
2 changed files with 336 additions and 1 deletions
262
tests/components/unifi/snapshots/test_sensor.ambr
Normal file
262
tests/components/unifi/snapshots/test_sensor.ambr
Normal file
|
@ -0,0 +1,262 @@
|
|||
# serializer version: 1
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_rx-config_entry_options0]
|
||||
'data_rate'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_rx-config_entry_options0].1
|
||||
'data_rate'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_rx-config_entry_options0].2
|
||||
<SensorStateClass.MEASUREMENT: 'measurement'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_rx-config_entry_options0].3
|
||||
<UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_rx-config_entry_options0].4
|
||||
'1234.0'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_rx-rx--config_entry_options0]
|
||||
'rx-00:00:00:00:00:01'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_rx-rx--config_entry_options0].1
|
||||
<EntityCategory.DIAGNOSTIC: 'diagnostic'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_rx-rx--config_entry_options0].2
|
||||
'data_rate'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_rx-rx--config_entry_options0].3
|
||||
'Wired client RX'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_rx-rx--config_entry_options0].4
|
||||
<SensorStateClass.MEASUREMENT: 'measurement'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_rx-rx--config_entry_options0].5
|
||||
<UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_rx-rx--config_entry_options0].6
|
||||
'1234.0'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_uptime-uptime--config_entry_options0]
|
||||
'uptime-00:00:00:00:00:01'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_uptime-uptime--config_entry_options0].1
|
||||
<EntityCategory.DIAGNOSTIC: 'diagnostic'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_uptime-uptime--config_entry_options0].2
|
||||
'timestamp'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_uptime-uptime--config_entry_options0].3
|
||||
'Wired client Uptime'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_uptime-uptime--config_entry_options0].4
|
||||
None
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_uptime-uptime--config_entry_options0].5
|
||||
None
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload0-sensor.wired_client_uptime-uptime--config_entry_options0].6
|
||||
'2020-09-14T14:41:45+00:00'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_rx-rx--config_entry_options0]
|
||||
'rx-00:00:00:00:00:01'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_rx-rx--config_entry_options0].1
|
||||
<EntityCategory.DIAGNOSTIC: 'diagnostic'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_rx-rx--config_entry_options0].2
|
||||
'data_rate'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_rx-rx--config_entry_options0].3
|
||||
'Wired client RX'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_rx-rx--config_entry_options0].4
|
||||
<SensorStateClass.MEASUREMENT: 'measurement'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_rx-rx--config_entry_options0].5
|
||||
<UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_rx-rx--config_entry_options0].6
|
||||
'1234.0'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_tx-config_entry_options0]
|
||||
'data_rate'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_tx-config_entry_options0].1
|
||||
'data_rate'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_tx-config_entry_options0].2
|
||||
<SensorStateClass.MEASUREMENT: 'measurement'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_tx-config_entry_options0].3
|
||||
<UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_tx-config_entry_options0].4
|
||||
'5678.0'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_tx-tx--config_entry_options0]
|
||||
'tx-00:00:00:00:00:01'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_tx-tx--config_entry_options0].1
|
||||
<EntityCategory.DIAGNOSTIC: 'diagnostic'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_tx-tx--config_entry_options0].2
|
||||
'data_rate'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_tx-tx--config_entry_options0].3
|
||||
'Wired client TX'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_tx-tx--config_entry_options0].4
|
||||
<SensorStateClass.MEASUREMENT: 'measurement'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_tx-tx--config_entry_options0].5
|
||||
<UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload1-sensor.wired_client_tx-tx--config_entry_options0].6
|
||||
'5678.0'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_tx-tx--config_entry_options0]
|
||||
'tx-00:00:00:00:00:01'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_tx-tx--config_entry_options0].1
|
||||
<EntityCategory.DIAGNOSTIC: 'diagnostic'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_tx-tx--config_entry_options0].2
|
||||
'data_rate'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_tx-tx--config_entry_options0].3
|
||||
'Wired client TX'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_tx-tx--config_entry_options0].4
|
||||
<SensorStateClass.MEASUREMENT: 'measurement'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_tx-tx--config_entry_options0].5
|
||||
<UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_tx-tx--config_entry_options0].6
|
||||
'5678.0'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_uptime-uptime--config_entry_options0]
|
||||
'uptime-00:00:00:00:00:01'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_uptime-uptime--config_entry_options0].1
|
||||
<EntityCategory.DIAGNOSTIC: 'diagnostic'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_uptime-uptime--config_entry_options0].2
|
||||
'timestamp'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_uptime-uptime--config_entry_options0].3
|
||||
'Wired client Uptime'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_uptime-uptime--config_entry_options0].4
|
||||
None
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_uptime-uptime--config_entry_options0].5
|
||||
None
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wired_client_uptime-uptime--config_entry_options0].6
|
||||
'2020-09-14T14:41:45+00:00'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wireless_client_rx-rx--config_entry_options0]
|
||||
'rx-00:00:00:00:00:02'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wireless_client_rx-rx--config_entry_options0].1
|
||||
<EntityCategory.DIAGNOSTIC: 'diagnostic'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wireless_client_rx-rx--config_entry_options0].2
|
||||
'data_rate'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wireless_client_rx-rx--config_entry_options0].3
|
||||
'Wireless client RX'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wireless_client_rx-rx--config_entry_options0].4
|
||||
<SensorStateClass.MEASUREMENT: 'measurement'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wireless_client_rx-rx--config_entry_options0].5
|
||||
<UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload2-sensor.wireless_client_rx-rx--config_entry_options0].6
|
||||
'2345.0'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_rx-rx--config_entry_options0]
|
||||
'rx-00:00:00:00:00:01'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_rx-rx--config_entry_options0].1
|
||||
<EntityCategory.DIAGNOSTIC: 'diagnostic'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_rx-rx--config_entry_options0].2
|
||||
'data_rate'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_rx-rx--config_entry_options0].3
|
||||
'Wireless client RX'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_rx-rx--config_entry_options0].4
|
||||
<SensorStateClass.MEASUREMENT: 'measurement'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_rx-rx--config_entry_options0].5
|
||||
<UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_rx-rx--config_entry_options0].6
|
||||
'2345.0'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_tx-tx--config_entry_options0]
|
||||
'tx-00:00:00:00:00:02'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_tx-tx--config_entry_options0].1
|
||||
<EntityCategory.DIAGNOSTIC: 'diagnostic'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_tx-tx--config_entry_options0].2
|
||||
'data_rate'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_tx-tx--config_entry_options0].3
|
||||
'Wireless client TX'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_tx-tx--config_entry_options0].4
|
||||
<SensorStateClass.MEASUREMENT: 'measurement'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_tx-tx--config_entry_options0].5
|
||||
<UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload3-sensor.wireless_client_tx-tx--config_entry_options0].6
|
||||
'6789.0'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload4-sensor.wireless_client_tx-tx--config_entry_options0]
|
||||
'tx-00:00:00:00:00:01'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload4-sensor.wireless_client_tx-tx--config_entry_options0].1
|
||||
<EntityCategory.DIAGNOSTIC: 'diagnostic'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload4-sensor.wireless_client_tx-tx--config_entry_options0].2
|
||||
'data_rate'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload4-sensor.wireless_client_tx-tx--config_entry_options0].3
|
||||
'Wireless client TX'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload4-sensor.wireless_client_tx-tx--config_entry_options0].4
|
||||
<SensorStateClass.MEASUREMENT: 'measurement'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload4-sensor.wireless_client_tx-tx--config_entry_options0].5
|
||||
<UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload4-sensor.wireless_client_tx-tx--config_entry_options0].6
|
||||
'6789.0'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload5-sensor.wireless_client_uptime-uptime--config_entry_options0]
|
||||
'uptime-00:00:00:00:00:01'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload5-sensor.wireless_client_uptime-uptime--config_entry_options0].1
|
||||
<EntityCategory.DIAGNOSTIC: 'diagnostic'>
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload5-sensor.wireless_client_uptime-uptime--config_entry_options0].2
|
||||
'timestamp'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload5-sensor.wireless_client_uptime-uptime--config_entry_options0].3
|
||||
'Wireless client Uptime'
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload5-sensor.wireless_client_uptime-uptime--config_entry_options0].4
|
||||
None
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload5-sensor.wireless_client_uptime-uptime--config_entry_options0].5
|
||||
None
|
||||
# ---
|
||||
# name: test_sensor_sources[client_payload5-sensor.wireless_client_uptime-uptime--config_entry_options0].6
|
||||
'2021-01-01T01:00:00+00:00'
|
||||
# ---
|
|
@ -11,6 +11,7 @@ from aiounifi.models.device import DeviceState
|
|||
from aiounifi.models.message import MessageKey
|
||||
from freezegun.api import FrozenDateTimeFactory, freeze_time
|
||||
import pytest
|
||||
from syrupy.assertion import SnapshotAssertion
|
||||
|
||||
from homeassistant.components.sensor import (
|
||||
ATTR_STATE_CLASS,
|
||||
|
@ -29,7 +30,13 @@ from homeassistant.components.unifi.const import (
|
|||
DEVICE_STATES,
|
||||
)
|
||||
from homeassistant.config_entries import RELOAD_AFTER_UPDATE_DELAY, ConfigEntry
|
||||
from homeassistant.const import ATTR_DEVICE_CLASS, STATE_UNAVAILABLE, EntityCategory
|
||||
from homeassistant.const import (
|
||||
ATTR_DEVICE_CLASS,
|
||||
ATTR_FRIENDLY_NAME,
|
||||
ATTR_UNIT_OF_MEASUREMENT,
|
||||
STATE_UNAVAILABLE,
|
||||
EntityCategory,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import entity_registry as er
|
||||
from homeassistant.helpers.entity_registry import RegistryEntryDisabler
|
||||
|
@ -1332,3 +1339,69 @@ async def test_device_client_sensors(
|
|||
|
||||
assert hass.states.get("sensor.wired_device_clients").state == "2"
|
||||
assert hass.states.get("sensor.wireless_device_clients").state == "0"
|
||||
|
||||
|
||||
WIRED_CLIENT = {
|
||||
"hostname": "Wired client",
|
||||
"is_wired": True,
|
||||
"mac": "00:00:00:00:00:01",
|
||||
"oui": "Producer",
|
||||
"wired-rx_bytes-r": 1234000000,
|
||||
"wired-tx_bytes-r": 5678000000,
|
||||
"uptime": 1600094505,
|
||||
}
|
||||
WIRELESS_CLIENT = {
|
||||
"is_wired": False,
|
||||
"mac": "00:00:00:00:00:01",
|
||||
"name": "Wireless client",
|
||||
"oui": "Producer",
|
||||
"rx_bytes-r": 2345000000.0,
|
||||
"tx_bytes-r": 6789000000.0,
|
||||
"uptime": 60,
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"config_entry_options",
|
||||
[
|
||||
{
|
||||
CONF_ALLOW_BANDWIDTH_SENSORS: True,
|
||||
CONF_ALLOW_UPTIME_SENSORS: True,
|
||||
CONF_TRACK_CLIENTS: False,
|
||||
CONF_TRACK_DEVICES: False,
|
||||
}
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
("client_payload", "entity_id", "unique_id_prefix"),
|
||||
[
|
||||
([WIRED_CLIENT], "sensor.wired_client_rx", "rx-"),
|
||||
([WIRED_CLIENT], "sensor.wired_client_tx", "tx-"),
|
||||
([WIRED_CLIENT], "sensor.wired_client_uptime", "uptime-"),
|
||||
([WIRELESS_CLIENT], "sensor.wireless_client_rx", "rx-"),
|
||||
([WIRELESS_CLIENT], "sensor.wireless_client_tx", "tx-"),
|
||||
([WIRELESS_CLIENT], "sensor.wireless_client_uptime", "uptime-"),
|
||||
],
|
||||
)
|
||||
@pytest.mark.usefixtures("config_entry_setup")
|
||||
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
||||
@pytest.mark.freeze_time("2021-01-01 01:01:00")
|
||||
async def test_sensor_sources(
|
||||
hass: HomeAssistant,
|
||||
entity_registry: er.EntityRegistry,
|
||||
snapshot: SnapshotAssertion,
|
||||
entity_id: str,
|
||||
unique_id_prefix: str,
|
||||
) -> None:
|
||||
"""Test sensor sources and the entity description."""
|
||||
ent_reg_entry = entity_registry.async_get(entity_id)
|
||||
assert ent_reg_entry.unique_id.startswith(unique_id_prefix)
|
||||
assert ent_reg_entry.unique_id == snapshot
|
||||
assert ent_reg_entry.entity_category == snapshot
|
||||
|
||||
state = hass.states.get(entity_id)
|
||||
assert state.attributes.get(ATTR_DEVICE_CLASS) == snapshot
|
||||
assert state.attributes.get(ATTR_FRIENDLY_NAME) == snapshot
|
||||
assert state.attributes.get(ATTR_STATE_CLASS) == snapshot
|
||||
assert state.attributes.get(ATTR_UNIT_OF_MEASUREMENT) == snapshot
|
||||
assert state.state == snapshot
|
||||
|
|
Loading…
Add table
Reference in a new issue