Use snapshot in deCONZ sensor tests (#122543)

This commit is contained in:
Robert Svensson 2024-07-24 18:07:18 +02:00 committed by GitHub
parent 5bda072141
commit 277883e756
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 2321 additions and 337 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,31 +2,22 @@
from datetime import timedelta from datetime import timedelta
from typing import Any from typing import Any
from unittest.mock import patch
import pytest import pytest
from syrupy import SnapshotAssertion
from homeassistant.components.deconz.const import CONF_ALLOW_CLIP_SENSOR from homeassistant.components.deconz.const import CONF_ALLOW_CLIP_SENSOR
from homeassistant.components.sensor import ( from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
DOMAIN as SENSOR_DOMAIN, from homeassistant.config_entries import RELOAD_AFTER_UPDATE_DELAY
SensorDeviceClass, from homeassistant.const import STATE_UNAVAILABLE, Platform
SensorStateClass,
)
from homeassistant.config_entries import RELOAD_AFTER_UPDATE_DELAY, ConfigEntry
from homeassistant.const import (
ATTR_DEVICE_CLASS,
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
CONCENTRATION_PARTS_PER_BILLION,
CONCENTRATION_PARTS_PER_MILLION,
STATE_UNAVAILABLE,
EntityCategory,
)
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr, entity_registry as er from homeassistant.helpers import entity_registry as er
from homeassistant.util import dt as dt_util from homeassistant.util import dt as dt_util
from .conftest import ConfigEntryFactoryType, WebsocketDataType from .conftest import ConfigEntryFactoryType, WebsocketDataType
from tests.common import async_fire_time_changed from tests.common import async_fire_time_changed, snapshot_platform
TEST_DATA = [ TEST_DATA = [
( # Air quality sensor ( # Air quality sensor
@ -51,17 +42,7 @@ TEST_DATA = [
"uniqueid": "00:12:4b:00:14:4d:00:07-02-fdef", "uniqueid": "00:12:4b:00:14:4d:00:07-02-fdef",
}, },
{ {
"entity_count": 2,
"device_count": 3,
"entity_id": "sensor.bosch_air_quality_sensor", "entity_id": "sensor.bosch_air_quality_sensor",
"unique_id": "00:12:4b:00:14:4d:00:07-02-fdef-air_quality",
"state": "poor",
"entity_category": None,
"device_class": None,
"state_class": None,
"attributes": {
"friendly_name": "BOSCH Air quality sensor",
},
"websocket_event": {"state": {"airquality": "excellent"}}, "websocket_event": {"state": {"airquality": "excellent"}},
"next_state": "excellent", "next_state": "excellent",
}, },
@ -88,19 +69,7 @@ TEST_DATA = [
"uniqueid": "00:12:4b:00:14:4d:00:07-02-fdef", "uniqueid": "00:12:4b:00:14:4d:00:07-02-fdef",
}, },
{ {
"entity_count": 2,
"device_count": 3,
"entity_id": "sensor.bosch_air_quality_sensor_ppb", "entity_id": "sensor.bosch_air_quality_sensor_ppb",
"unique_id": "00:12:4b:00:14:4d:00:07-02-fdef-air_quality_ppb",
"state": "809",
"entity_category": None,
"device_class": None,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"friendly_name": "BOSCH Air quality sensor PPB",
"state_class": "measurement",
"unit_of_measurement": CONCENTRATION_PARTS_PER_BILLION,
},
"websocket_event": {"state": {"airqualityppb": 1000}}, "websocket_event": {"state": {"airqualityppb": 1000}},
"next_state": "1000", "next_state": "1000",
}, },
@ -127,20 +96,7 @@ TEST_DATA = [
"uniqueid": "00:00:00:00:00:00:00:01-02-0113", "uniqueid": "00:00:00:00:00:00:00:01-02-0113",
}, },
{ {
"entity_count": 4,
"device_count": 3,
"entity_id": "sensor.airquality_1_co2", "entity_id": "sensor.airquality_1_co2",
"unique_id": "00:00:00:00:00:00:00:01-02-0113-air_quality_co2",
"state": "359",
"entity_category": None,
"device_class": SensorDeviceClass.CO2,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"friendly_name": "AirQuality 1 CO2",
"device_class": SensorDeviceClass.CO2,
"state_class": SensorStateClass.MEASUREMENT,
"unit_of_measurement": CONCENTRATION_PARTS_PER_MILLION,
},
"websocket_event": {"state": {"airquality_co2_density": 332}}, "websocket_event": {"state": {"airquality_co2_density": 332}},
"next_state": "332", "next_state": "332",
}, },
@ -167,20 +123,7 @@ TEST_DATA = [
"uniqueid": "00:00:00:00:00:00:00:01-02-0113", "uniqueid": "00:00:00:00:00:00:00:01-02-0113",
}, },
{ {
"entity_count": 4,
"device_count": 3,
"entity_id": "sensor.airquality_1_ch2o", "entity_id": "sensor.airquality_1_ch2o",
"unique_id": "00:00:00:00:00:00:00:01-02-0113-air_quality_formaldehyde",
"state": "4",
"entity_category": None,
"device_class": SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"friendly_name": "AirQuality 1 CH2O",
"device_class": SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
"state_class": SensorStateClass.MEASUREMENT,
"unit_of_measurement": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
},
"websocket_event": {"state": {"airquality_formaldehyde_density": 5}}, "websocket_event": {"state": {"airquality_formaldehyde_density": 5}},
"next_state": "5", "next_state": "5",
}, },
@ -207,20 +150,7 @@ TEST_DATA = [
"uniqueid": "00:00:00:00:00:00:00:01-02-0113", "uniqueid": "00:00:00:00:00:00:00:01-02-0113",
}, },
{ {
"entity_count": 4,
"device_count": 3,
"entity_id": "sensor.airquality_1_pm25", "entity_id": "sensor.airquality_1_pm25",
"unique_id": "00:00:00:00:00:00:00:01-02-0113-air_quality_pm2_5",
"state": "8",
"entity_category": None,
"device_class": SensorDeviceClass.PM25,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"friendly_name": "AirQuality 1 PM25",
"device_class": SensorDeviceClass.PM25,
"state_class": SensorStateClass.MEASUREMENT,
"unit_of_measurement": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
},
"websocket_event": {"state": {"pm2_5": 11}}, "websocket_event": {"state": {"pm2_5": 11}},
"next_state": "11", "next_state": "11",
}, },
@ -246,21 +176,7 @@ TEST_DATA = [
"uniqueid": "00:0d:6f:ff:fe:01:23:45-01-0001", "uniqueid": "00:0d:6f:ff:fe:01:23:45-01-0001",
}, },
{ {
"entity_count": 1,
"device_count": 3,
"entity_id": "sensor.fyrtur_block_out_roller_blind_battery", "entity_id": "sensor.fyrtur_block_out_roller_blind_battery",
"unique_id": "00:0d:6f:ff:fe:01:23:45-01-0001-battery",
"state": "100",
"entity_category": EntityCategory.DIAGNOSTIC,
"device_class": SensorDeviceClass.BATTERY,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"state_class": "measurement",
"on": True,
"unit_of_measurement": "%",
"device_class": "battery",
"friendly_name": "FYRTUR block-out roller blind Battery",
},
"websocket_event": {"state": {"battery": 50}}, "websocket_event": {"state": {"battery": 50}},
"next_state": "50", "next_state": "50",
}, },
@ -290,20 +206,7 @@ TEST_DATA = [
"uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-040d", "uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-040d",
}, },
{ {
"entity_count": 1,
"device_count": 3,
"entity_id": "sensor.carbondioxide_35", "entity_id": "sensor.carbondioxide_35",
"unique_id": "xx:xx:xx:xx:xx:xx:xx:xx-01-040d-carbon_dioxide",
"state": "370",
"entity_category": None,
"device_class": SensorDeviceClass.CO2,
"state_class": CONCENTRATION_PARTS_PER_BILLION,
"attributes": {
"device_class": "carbon_dioxide",
"friendly_name": "CarbonDioxide 35",
"state_class": SensorStateClass.MEASUREMENT,
"unit_of_measurement": CONCENTRATION_PARTS_PER_BILLION,
},
"websocket_event": {"state": {"measured_value": 500}}, "websocket_event": {"state": {"measured_value": 500}},
"next_state": "500", "next_state": "500",
}, },
@ -325,22 +228,7 @@ TEST_DATA = [
"uniqueid": "00:0d:6f:00:0b:7a:64:29-01-0702", "uniqueid": "00:0d:6f:00:0b:7a:64:29-01-0702",
}, },
{ {
"entity_count": 1,
"device_count": 3,
"entity_id": "sensor.consumption_15", "entity_id": "sensor.consumption_15",
"unique_id": "00:0d:6f:00:0b:7a:64:29-01-0702-consumption",
"state": "11.342",
"entity_category": None,
"device_class": SensorDeviceClass.ENERGY,
"state_class": SensorStateClass.TOTAL_INCREASING,
"attributes": {
"state_class": "total_increasing",
"on": True,
"power": 123,
"unit_of_measurement": "kWh",
"device_class": "energy",
"friendly_name": "Consumption 15",
},
"websocket_event": {"state": {"consumption": 10000}}, "websocket_event": {"state": {"consumption": 10000}},
"next_state": "10.0", "next_state": "10.0",
}, },
@ -368,21 +256,7 @@ TEST_DATA = [
}, },
{ {
"enable_entity": True, "enable_entity": True,
"entity_count": 1,
"device_count": 3,
"entity_id": "sensor.daylight", "entity_id": "sensor.daylight",
"unique_id": "01:23:4E:FF:FF:56:78:9A-01-daylight_status",
"old-unique_id": "01:23:4E:FF:FF:56:78:9A-01",
"state": "solar_noon",
"entity_category": None,
"device_class": None,
"state_class": None,
"attributes": {
"on": True,
"daylight": True,
"icon": "mdi:white-balance-sunny",
"friendly_name": "Daylight",
},
"websocket_event": {"state": {"status": 210}}, "websocket_event": {"state": {"status": 210}},
"next_state": "dusk", "next_state": "dusk",
}, },
@ -412,20 +286,7 @@ TEST_DATA = [
"uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-042b", "uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-042b",
}, },
{ {
"entity_count": 1,
"device_count": 3,
"entity_id": "sensor.formaldehyde_34", "entity_id": "sensor.formaldehyde_34",
"unique_id": "xx:xx:xx:xx:xx:xx:xx:xx-01-042b-formaldehyde",
"state": "1",
"entity_category": None,
"device_class": SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"device_class": "volatile_organic_compounds",
"friendly_name": "Formaldehyde 34",
"state_class": SensorStateClass.MEASUREMENT,
"unit_of_measurement": CONCENTRATION_PARTS_PER_BILLION,
},
"websocket_event": {"state": {"measured_value": 2}}, "websocket_event": {"state": {"measured_value": 2}},
"next_state": "2", "next_state": "2",
}, },
@ -449,18 +310,7 @@ TEST_DATA = [
"uniqueid": "fsm-state-1520195376277", "uniqueid": "fsm-state-1520195376277",
}, },
{ {
"entity_count": 1,
"device_count": 2,
"entity_id": "sensor.fsm_state_motion_stair", "entity_id": "sensor.fsm_state_motion_stair",
"unique_id": "fsm-state-1520195376277-status",
"state": "0",
"entity_category": None,
"device_class": None,
"state_class": None,
"attributes": {
"on": True,
"friendly_name": "FSM_STATE Motion stair",
},
"websocket_event": {"state": {"status": 1}}, "websocket_event": {"state": {"status": 1}},
"next_state": "1", "next_state": "1",
}, },
@ -487,24 +337,7 @@ TEST_DATA = [
"uniqueid": "00:15:8d:00:02:45:dc:53-01-0405", "uniqueid": "00:15:8d:00:02:45:dc:53-01-0405",
}, },
{ {
"entity_count": 2,
"device_count": 3,
"entity_id": "sensor.mi_temperature_1", "entity_id": "sensor.mi_temperature_1",
"unique_id": "00:15:8d:00:02:45:dc:53-01-0405-humidity",
"state": "35.55",
"entity_category": None,
"device_class": SensorDeviceClass.HUMIDITY,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"state_class": "measurement",
"on": True,
"unit_of_measurement": "%",
"device_class": "humidity",
"friendly_name": "Mi temperature 1",
},
"options": {
"suggested_display_precision": 1,
},
"websocket_event": {"state": {"humidity": 1000}}, "websocket_event": {"state": {"humidity": 1000}},
"next_state": "10.0", "next_state": "10.0",
}, },
@ -528,20 +361,7 @@ TEST_DATA = [
"uniqueid": "a4:c1:38:fe:86:8f:07:a3-01-0408", "uniqueid": "a4:c1:38:fe:86:8f:07:a3-01-0408",
}, },
{ {
"entity_count": 3,
"device_count": 3,
"entity_id": "sensor.soil_sensor", "entity_id": "sensor.soil_sensor",
"unique_id": "a4:c1:38:fe:86:8f:07:a3-01-0408-moisture",
"state": "72.13",
"entity_category": None,
"device_class": SensorDeviceClass.MOISTURE,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"state_class": "measurement",
"unit_of_measurement": "%",
"device_class": "moisture",
"friendly_name": "Soil Sensor",
},
"websocket_event": {"state": {"moisture": 6923}}, "websocket_event": {"state": {"moisture": 6923}},
"next_state": "69.23", "next_state": "69.23",
}, },
@ -576,23 +396,7 @@ TEST_DATA = [
"uniqueid": "00:17:88:01:03:28:8c:9b-02-0400", "uniqueid": "00:17:88:01:03:28:8c:9b-02-0400",
}, },
{ {
"entity_count": 2,
"device_count": 3,
"entity_id": "sensor.motion_sensor_4", "entity_id": "sensor.motion_sensor_4",
"unique_id": "00:17:88:01:03:28:8c:9b-02-0400-light_level",
"state": "5.0",
"entity_category": None,
"device_class": SensorDeviceClass.ILLUMINANCE,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"on": True,
"dark": True,
"daylight": False,
"unit_of_measurement": "lx",
"device_class": "illuminance",
"friendly_name": "Motion sensor 4",
"state_class": "measurement",
},
"websocket_event": {"state": {"lightlevel": 1000}}, "websocket_event": {"state": {"lightlevel": 1000}},
"next_state": "1.3", "next_state": "1.3",
}, },
@ -628,20 +432,7 @@ TEST_DATA = [
"uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-042a", "uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-042a",
}, },
{ {
"entity_count": 1,
"device_count": 3,
"entity_id": "sensor.starkvind_airpurifier_pm25", "entity_id": "sensor.starkvind_airpurifier_pm25",
"unique_id": "xx:xx:xx:xx:xx:xx:xx:xx-01-042a-particulate_matter_pm2_5",
"state": "1",
"entity_category": None,
"device_class": SensorDeviceClass.PM25,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"friendly_name": "STARKVIND AirPurifier PM25",
"device_class": SensorDeviceClass.PM25,
"state_class": SensorStateClass.MEASUREMENT,
"unit_of_measurement": CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
},
"websocket_event": {"state": {"measured_value": 2}}, "websocket_event": {"state": {"measured_value": 2}},
"next_state": "2", "next_state": "2",
}, },
@ -667,23 +458,7 @@ TEST_DATA = [
"uniqueid": "00:0d:6f:00:0b:7a:64:29-01-0b04", "uniqueid": "00:0d:6f:00:0b:7a:64:29-01-0b04",
}, },
{ {
"entity_count": 1,
"device_count": 3,
"entity_id": "sensor.power_16", "entity_id": "sensor.power_16",
"unique_id": "00:0d:6f:00:0b:7a:64:29-01-0b04-power",
"state": "64",
"entity_category": None,
"device_class": SensorDeviceClass.POWER,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"state_class": "measurement",
"on": True,
"current": 34,
"voltage": 231,
"unit_of_measurement": "W",
"device_class": "power",
"friendly_name": "Power 16",
},
"websocket_event": {"state": {"power": 1000}}, "websocket_event": {"state": {"power": 1000}},
"next_state": "1000", "next_state": "1000",
}, },
@ -709,21 +484,7 @@ TEST_DATA = [
"uniqueid": "00:15:8d:00:02:45:dc:53-01-0403", "uniqueid": "00:15:8d:00:02:45:dc:53-01-0403",
}, },
{ {
"entity_count": 2,
"device_count": 3,
"entity_id": "sensor.mi_temperature_1", "entity_id": "sensor.mi_temperature_1",
"unique_id": "00:15:8d:00:02:45:dc:53-01-0403-pressure",
"state": "1010",
"entity_category": None,
"device_class": SensorDeviceClass.PRESSURE,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"state_class": "measurement",
"on": True,
"unit_of_measurement": "hPa",
"device_class": "pressure",
"friendly_name": "Mi temperature 1",
},
"websocket_event": {"state": {"pressure": 500}}, "websocket_event": {"state": {"pressure": 500}},
"next_state": "500", "next_state": "500",
}, },
@ -750,24 +511,7 @@ TEST_DATA = [
"uniqueid": "00:15:8d:00:02:45:dc:53-01-0402", "uniqueid": "00:15:8d:00:02:45:dc:53-01-0402",
}, },
{ {
"entity_count": 2,
"device_count": 3,
"entity_id": "sensor.mi_temperature_1", "entity_id": "sensor.mi_temperature_1",
"unique_id": "00:15:8d:00:02:45:dc:53-01-0402-temperature",
"state": "21.82",
"entity_category": None,
"device_class": SensorDeviceClass.TEMPERATURE,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"state_class": "measurement",
"on": True,
"unit_of_measurement": "°C",
"device_class": "temperature",
"friendly_name": "Mi temperature 1",
},
"options": {
"suggested_display_precision": 1,
},
"websocket_event": {"state": {"temperature": 1800}}, "websocket_event": {"state": {"temperature": 1800}},
"next_state": "18.0", "next_state": "18.0",
}, },
@ -796,17 +540,7 @@ TEST_DATA = [
"uniqueid": "cc:cc:cc:ff:fe:38:4d:b3-01-000a", "uniqueid": "cc:cc:cc:ff:fe:38:4d:b3-01-000a",
}, },
{ {
"entity_count": 2,
"device_count": 3,
"entity_id": "sensor.etrv_sejour", "entity_id": "sensor.etrv_sejour",
"unique_id": "cc:cc:cc:ff:fe:38:4d:b3-01-000a-last_set",
"state": "2020-11-19T08:07:08+00:00",
"entity_category": None,
"device_class": SensorDeviceClass.TIMESTAMP,
"attributes": {
"device_class": "timestamp",
"friendly_name": "eTRV Séjour",
},
"websocket_event": {"state": {"lastset": "2020-12-14T10:12:14Z"}}, "websocket_event": {"state": {"lastset": "2020-12-14T10:12:14Z"}},
"next_state": "2020-12-14T10:12:14+00:00", "next_state": "2020-12-14T10:12:14+00:00",
}, },
@ -835,20 +569,7 @@ TEST_DATA = [
"uniqueid": "00:15:8d:00:02:b5:d1:80-01-0500", "uniqueid": "00:15:8d:00:02:b5:d1:80-01-0500",
}, },
{ {
"entity_count": 3,
"device_count": 3,
"entity_id": "sensor.alarm_10_temperature", "entity_id": "sensor.alarm_10_temperature",
"unique_id": "00:15:8d:00:02:b5:d1:80-01-0500-internal_temperature",
"state": "26.0",
"entity_category": None,
"device_class": SensorDeviceClass.TEMPERATURE,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"state_class": "measurement",
"unit_of_measurement": "°C",
"device_class": "temperature",
"friendly_name": "Alarm 10 Temperature",
},
"websocket_event": {"state": {"temperature": 1800}}, "websocket_event": {"state": {"temperature": 1800}},
"next_state": "26.0", "next_state": "26.0",
}, },
@ -876,22 +597,7 @@ TEST_DATA = [
"uniqueid": "00:17:88:01:02:0e:32:a3-02-fc00", "uniqueid": "00:17:88:01:02:0e:32:a3-02-fc00",
}, },
{ {
"entity_count": 1,
"device_count": 3,
"entity_id": "sensor.dimmer_switch_3_battery", "entity_id": "sensor.dimmer_switch_3_battery",
"unique_id": "00:17:88:01:02:0e:32:a3-02-fc00-battery",
"state": "90",
"entity_category": EntityCategory.DIAGNOSTIC,
"device_class": SensorDeviceClass.BATTERY,
"state_class": SensorStateClass.MEASUREMENT,
"attributes": {
"state_class": "measurement",
"on": True,
"event_id": "dimmer_switch_3",
"unit_of_measurement": "%",
"device_class": "battery",
"friendly_name": "Dimmer switch 3 Battery",
},
"websocket_event": {"config": {"battery": 80}}, "websocket_event": {"config": {"battery": 80}},
"next_state": "80", "next_state": "80",
}, },
@ -903,13 +609,16 @@ TEST_DATA = [
@pytest.mark.parametrize("config_entry_options", [{CONF_ALLOW_CLIP_SENSOR: True}]) @pytest.mark.parametrize("config_entry_options", [{CONF_ALLOW_CLIP_SENSOR: True}])
async def test_sensors( async def test_sensors(
hass: HomeAssistant, hass: HomeAssistant,
device_registry: dr.DeviceRegistry,
entity_registry: er.EntityRegistry, entity_registry: er.EntityRegistry,
config_entry_setup: ConfigEntry, config_entry_factory: ConfigEntryFactoryType,
sensor_ws_data: WebsocketDataType, sensor_ws_data: WebsocketDataType,
expected: dict[str, Any], expected: dict[str, Any],
snapshot: SnapshotAssertion,
) -> None: ) -> None:
"""Test successful creation of sensor entities.""" """Test successful creation of sensor entities."""
with patch("homeassistant.components.deconz.PLATFORMS", [Platform.SENSOR]):
config_entry = await config_entry_factory()
# Enable in entity registry # Enable in entity registry
if expected.get("enable_entity"): if expected.get("enable_entity"):
entity_registry.async_update_entity( entity_registry.async_update_entity(
@ -923,32 +632,7 @@ async def test_sensors(
) )
await hass.async_block_till_done() await hass.async_block_till_done()
assert len(hass.states.async_all()) == expected["entity_count"] await snapshot_platform(hass, entity_registry, snapshot, config_entry.entry_id)
# Verify entity state
sensor = hass.states.get(expected["entity_id"])
assert sensor.state == expected["state"]
assert sensor.attributes.get(ATTR_DEVICE_CLASS) == expected["device_class"]
assert sensor.attributes == expected["attributes"]
# Verify entity registry
assert (
entity_registry.async_get(expected["entity_id"]).entity_category
is expected["entity_category"]
)
ent_reg_entry = entity_registry.async_get(expected["entity_id"])
assert ent_reg_entry.entity_category is expected["entity_category"]
assert ent_reg_entry.unique_id == expected["unique_id"]
# Verify device registry
assert (
len(
dr.async_entries_for_config_entry(
device_registry, config_entry_setup.entry_id
)
)
== expected["device_count"]
)
# Change state # Change state
@ -957,12 +641,12 @@ async def test_sensors(
# Unload entry # Unload entry
await hass.config_entries.async_unload(config_entry_setup.entry_id) await hass.config_entries.async_unload(config_entry.entry_id)
assert hass.states.get(expected["entity_id"]).state == STATE_UNAVAILABLE assert hass.states.get(expected["entity_id"]).state == STATE_UNAVAILABLE
# Remove entry # Remove entry
await hass.config_entries.async_remove(config_entry_setup.entry_id) await hass.config_entries.async_remove(config_entry.entry_id)
await hass.async_block_till_done() await hass.async_block_till_done()
assert len(hass.states.async_all()) == 0 assert len(hass.states.async_all()) == 0
@ -1021,17 +705,20 @@ async def test_not_allow_clip_sensor(hass: HomeAssistant) -> None:
) )
@pytest.mark.parametrize("config_entry_options", [{CONF_ALLOW_CLIP_SENSOR: True}]) @pytest.mark.parametrize("config_entry_options", [{CONF_ALLOW_CLIP_SENSOR: True}])
async def test_allow_clip_sensors( async def test_allow_clip_sensors(
hass: HomeAssistant, config_entry_setup: ConfigEntry hass: HomeAssistant,
entity_registry: er.EntityRegistry,
config_entry_factory: ConfigEntryFactoryType,
snapshot: SnapshotAssertion,
) -> None: ) -> None:
"""Test that CLIP sensors can be allowed.""" """Test that CLIP sensors can be allowed."""
assert len(hass.states.async_all()) == 4 with patch("homeassistant.components.deconz.PLATFORMS", [Platform.SENSOR]):
assert hass.states.get("sensor.clip_light_level_sensor").state == "999.8" config_entry = await config_entry_factory()
assert hass.states.get("sensor.clip_flur").state == "0" await snapshot_platform(hass, entity_registry, snapshot, config_entry.entry_id)
# Disallow clip sensors # Disallow clip sensors
hass.config_entries.async_update_entry( hass.config_entries.async_update_entry(
config_entry_setup, options={CONF_ALLOW_CLIP_SENSOR: False} config_entry, options={CONF_ALLOW_CLIP_SENSOR: False}
) )
await hass.async_block_till_done() await hass.async_block_till_done()
@ -1042,7 +729,7 @@ async def test_allow_clip_sensors(
# Allow clip sensors # Allow clip sensors
hass.config_entries.async_update_entry( hass.config_entries.async_update_entry(
config_entry_setup, options={CONF_ALLOW_CLIP_SENSOR: True} config_entry, options={CONF_ALLOW_CLIP_SENSOR: True}
) )
await hass.async_block_till_done() await hass.async_block_till_done()