core/tests/components/glances/test_sensor.py

103 lines
3.6 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)
assert hass.states.get("sensor.0_0_0_0_ssl_used").state == str(
HA_SENSOR_DATA["fs"]["/ssl"]["disk_use"]
)
assert hass.states.get("sensor.0_0_0_0_cpu_thermal_1_temperature").state == str(
HA_SENSOR_DATA["sensors"]["cpu_thermal 1"]["temperature_core"]
)
assert hass.states.get("sensor.0_0_0_0_err_temp_temperature").state == str(
HA_SENSOR_DATA["sensors"]["err_temp"]["temperature_hdd"]
)
assert hass.states.get("sensor.0_0_0_0_na_temp_temperature").state == str(
HA_SENSOR_DATA["sensors"]["na_temp"]["temperature_hdd"]
)
assert hass.states.get("sensor.0_0_0_0_ram_used_percent").state == str(
HA_SENSOR_DATA["mem"]["memory_use_percent"]
)
assert hass.states.get("sensor.0_0_0_0_containers_active").state == str(
HA_SENSOR_DATA["docker"]["docker_active"]
)
assert hass.states.get("sensor.0_0_0_0_containers_cpu_used").state == str(
HA_SENSOR_DATA["docker"]["docker_cpu_use"]
)
assert hass.states.get("sensor.0_0_0_0_containers_ram_used").state == str(
HA_SENSOR_DATA["docker"]["docker_memory_use"]
)
assert hass.states.get("sensor.0_0_0_0_md3_raid_available").state == str(
HA_SENSOR_DATA["raid"]["md3"]["available"]
)
assert hass.states.get("sensor.0_0_0_0_md3_raid_used").state == str(
HA_SENSOR_DATA["raid"]["md3"]["used"]
)
assert hass.states.get("sensor.0_0_0_0_md1_raid_available").state == str(
HA_SENSOR_DATA["raid"]["md1"]["available"]
)
assert hass.states.get("sensor.0_0_0_0_md1_raid_used").state == str(
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,
entity_registry: er.EntityRegistry,
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)
entity: er.RegistryEntry = entity_registry.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 = entity_registry.async_get(entity.entity_id)
assert entity_migrated
assert entity_migrated.unique_id == f"{entry.entry_id}-{new_unique_id}"