Tag Aranet diagnostic entities appropriately (#95218)

This commit is contained in:
aschmitz 2023-06-27 11:56:46 -05:00 committed by GitHub
parent e4eb7e4796
commit 1dc9c77a3e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 4 deletions

View file

@ -25,6 +25,7 @@ from homeassistant.const import (
ATTR_SW_VERSION,
CONCENTRATION_PARTS_PER_MILLION,
PERCENTAGE,
EntityCategory,
UnitOfPressure,
UnitOfTemperature,
UnitOfTime,
@ -81,6 +82,7 @@ SENSOR_DESCRIPTIONS = {
device_class=SensorDeviceClass.BATTERY,
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
entity_category=EntityCategory.DIAGNOSTIC,
),
"interval": AranetSensorEntityDescription(
key="update_interval",
@ -90,6 +92,7 @@ SENSOR_DESCRIPTIONS = {
state_class=SensorStateClass.MEASUREMENT,
# The interval setting is not a generally useful entity for most users.
entity_registry_enabled_default=False,
entity_category=EntityCategory.DIAGNOSTIC,
),
}

View file

@ -10,7 +10,9 @@ from tests.common import MockConfigEntry
from tests.components.bluetooth import inject_bluetooth_service_info
async def test_sensors(hass: HomeAssistant) -> None:
async def test_sensors(
hass: HomeAssistant, entity_registry_enabled_by_default: None
) -> None:
"""Test setting up creates the sensors."""
entry = MockConfigEntry(
domain=DOMAIN,
@ -24,7 +26,7 @@ async def test_sensors(hass: HomeAssistant) -> None:
assert len(hass.states.async_all("sensor")) == 0
inject_bluetooth_service_info(hass, VALID_DATA_SERVICE_INFO)
await hass.async_block_till_done()
assert len(hass.states.async_all("sensor")) == 5
assert len(hass.states.async_all("sensor")) == 6
batt_sensor = hass.states.get("sensor.aranet4_12345_battery")
batt_sensor_attrs = batt_sensor.attributes
@ -61,11 +63,20 @@ async def test_sensors(hass: HomeAssistant) -> None:
assert press_sensor_attrs[ATTR_UNIT_OF_MEASUREMENT] == "hPa"
assert press_sensor_attrs[ATTR_STATE_CLASS] == "measurement"
interval_sensor = hass.states.get("sensor.aranet4_12345_update_interval")
interval_sensor_attrs = interval_sensor.attributes
assert interval_sensor.state == "300"
assert interval_sensor_attrs[ATTR_FRIENDLY_NAME] == "Aranet4 12345 Update Interval"
assert interval_sensor_attrs[ATTR_UNIT_OF_MEASUREMENT] == "s"
assert interval_sensor_attrs[ATTR_STATE_CLASS] == "measurement"
assert await hass.config_entries.async_unload(entry.entry_id)
await hass.async_block_till_done()
async def test_smart_home_integration_disabled(hass: HomeAssistant) -> None:
async def test_smart_home_integration_disabled(
hass: HomeAssistant, entity_registry_enabled_by_default: None
) -> None:
"""Test disabling smart home integration marks entities as unavailable."""
entry = MockConfigEntry(
domain=DOMAIN,
@ -79,7 +90,7 @@ async def test_smart_home_integration_disabled(hass: HomeAssistant) -> None:
assert len(hass.states.async_all("sensor")) == 0
inject_bluetooth_service_info(hass, DISABLED_INTEGRATIONS_SERVICE_INFO)
await hass.async_block_till_done()
assert len(hass.states.async_all("sensor")) == 5
assert len(hass.states.async_all("sensor")) == 6
batt_sensor = hass.states.get("sensor.aranet4_12345_battery")
assert batt_sensor.state == "unavailable"