core/tests/components/glances/test_sensor.py

89 lines
3.5 KiB
Python

"""Tests for glances sensors."""
import pytest
from homeassistant.components.glances.const import DOMAIN
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
from . import HA_SENSOR_DATA, MOCK_USER_INPUT
from tests.common import MockConfigEntry
async def test_sensor_states(hass: HomeAssistant) -> None:
"""Test sensor states are correctly collected from library."""
entry = MockConfigEntry(domain=DOMAIN, data=MOCK_USER_INPUT)
entry.add_to_hass(hass)
assert await hass.config_entries.async_setup(entry.entry_id)
if state := hass.states.get("sensor.0_0_0_0_ssl_disk_use"):
assert state.state == HA_SENSOR_DATA["fs"]["/ssl"]["disk_use"]
if state := hass.states.get("sensor.0_0_0_0_cpu_thermal_1"):
assert state.state == HA_SENSOR_DATA["sensors"]["cpu_thermal 1"]
if state := hass.states.get("sensor.0_0_0_0_err_temp"):
assert state.state == HA_SENSOR_DATA["sensors"]["err_temp"]
if state := hass.states.get("sensor.0_0_0_0_na_temp"):
assert state.state == HA_SENSOR_DATA["sensors"]["na_temp"]
if state := hass.states.get("sensor.0_0_0_0_memory_use_percent"):
assert state.state == HA_SENSOR_DATA["mem"]["memory_use_percent"]
if state := hass.states.get("sensor.0_0_0_0_docker_active"):
assert state.state == HA_SENSOR_DATA["docker"]["docker_active"]
if state := hass.states.get("sensor.0_0_0_0_docker_cpu_use"):
assert state.state == HA_SENSOR_DATA["docker"]["docker_cpu_use"]
if state := hass.states.get("sensor.0_0_0_0_docker_memory_use"):
assert state.state == HA_SENSOR_DATA["docker"]["docker_memory_use"]
if state := hass.states.get("sensor.0_0_0_0_md3_available"):
assert state.state == HA_SENSOR_DATA["raid"]["md3"]["available"]
if state := hass.states.get("sensor.0_0_0_0_md3_used"):
assert state.state == HA_SENSOR_DATA["raid"]["md3"]["used"]
if state := hass.states.get("sensor.0_0_0_0_md1_available"):
assert state.state == HA_SENSOR_DATA["raid"]["md1"]["available"]
if state := hass.states.get("sensor.0_0_0_0_md1_used"):
assert state.state == HA_SENSOR_DATA["raid"]["md1"]["used"]
@pytest.mark.parametrize(
("object_id", "old_unique_id", "new_unique_id"),
[
(
"glances_ssl_used_percent",
"0.0.0.0-Glances /ssl used percent",
"/ssl-disk_use_percent",
),
(
"glances_cpu_thermal_1_temperature",
"0.0.0.0-Glances cpu_thermal 1 Temperature",
"cpu_thermal 1-temperature_core",
),
],
)
async def test_migrate_unique_id(
hass: HomeAssistant, object_id: str, old_unique_id: str, new_unique_id: str
) -> None:
"""Test unique id migration."""
old_config_data = {**MOCK_USER_INPUT, "name": "Glances"}
entry = MockConfigEntry(domain=DOMAIN, data=old_config_data)
entry.add_to_hass(hass)
ent_reg = er.async_get(hass)
entity: er.RegistryEntry = ent_reg.async_get_or_create(
suggested_object_id=object_id,
disabled_by=None,
domain=SENSOR_DOMAIN,
platform=DOMAIN,
unique_id=old_unique_id,
config_entry=entry,
)
assert entity.unique_id == old_unique_id
assert await hass.config_entries.async_setup(entry.entry_id)
await hass.async_block_till_done()
entity_migrated = ent_reg.async_get(entity.entity_id)
assert entity_migrated
assert entity_migrated.unique_id == f"{entry.entry_id}-{new_unique_id}"