mirror of
https://github.com/home-assistant/core.git
synced 2025-11-10 19:40:11 +00:00
169 lines
5.8 KiB
Python
169 lines
5.8 KiB
Python
"""Tests for the Plugwise Sensor integration."""
|
|
|
|
from unittest.mock import MagicMock
|
|
|
|
import pytest
|
|
from syrupy.assertion import SnapshotAssertion
|
|
|
|
from homeassistant.components.plugwise.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 tests.common import MockConfigEntry, snapshot_platform
|
|
|
|
|
|
@pytest.mark.parametrize("platforms", [(SENSOR_DOMAIN,)])
|
|
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
|
async def test_adam_sensor_snapshot(
|
|
hass: HomeAssistant,
|
|
mock_smile_adam: MagicMock,
|
|
snapshot: SnapshotAssertion,
|
|
entity_registry: er.EntityRegistry,
|
|
setup_platform: MockConfigEntry,
|
|
) -> None:
|
|
"""Test Adam sensor snapshot."""
|
|
await snapshot_platform(hass, entity_registry, snapshot, setup_platform.entry_id)
|
|
|
|
|
|
async def test_adam_climate_sensor_humidity(
|
|
hass: HomeAssistant,
|
|
mock_smile_adam_jip: MagicMock,
|
|
init_integration: MockConfigEntry,
|
|
) -> None:
|
|
"""Test creation of climate related humidity sensor entity."""
|
|
state = hass.states.get("sensor.woonkamer_humidity")
|
|
assert state
|
|
assert float(state.state) == 56.2
|
|
|
|
|
|
async def test_unique_id_migration_humidity(
|
|
hass: HomeAssistant,
|
|
entity_registry: er.EntityRegistry,
|
|
mock_smile_adam_jip: MagicMock,
|
|
mock_config_entry: MockConfigEntry,
|
|
) -> None:
|
|
"""Test unique ID migration of -relative_humidity to -humidity."""
|
|
mock_config_entry.add_to_hass(hass)
|
|
|
|
# Entry to migrate
|
|
entity_registry.async_get_or_create(
|
|
SENSOR_DOMAIN,
|
|
DOMAIN,
|
|
"f61f1a2535f54f52ad006a3d18e459ca-relative_humidity",
|
|
config_entry=mock_config_entry,
|
|
suggested_object_id="woonkamer_humidity",
|
|
disabled_by=None,
|
|
)
|
|
# Entry not needing migration
|
|
entity_registry.async_get_or_create(
|
|
SENSOR_DOMAIN,
|
|
DOMAIN,
|
|
"f61f1a2535f54f52ad006a3d18e459ca-battery",
|
|
config_entry=mock_config_entry,
|
|
suggested_object_id="woonkamer_battery",
|
|
disabled_by=None,
|
|
)
|
|
|
|
await hass.config_entries.async_setup(mock_config_entry.entry_id)
|
|
await hass.async_block_till_done()
|
|
|
|
assert hass.states.get("sensor.woonkamer_humidity") is not None
|
|
assert hass.states.get("sensor.woonkamer_battery") is not None
|
|
|
|
entity_entry = entity_registry.async_get("sensor.woonkamer_humidity")
|
|
assert entity_entry
|
|
assert entity_entry.unique_id == "f61f1a2535f54f52ad006a3d18e459ca-humidity"
|
|
|
|
entity_entry = entity_registry.async_get("sensor.woonkamer_battery")
|
|
assert entity_entry
|
|
assert entity_entry.unique_id == "f61f1a2535f54f52ad006a3d18e459ca-battery"
|
|
|
|
|
|
@pytest.mark.parametrize("chosen_env", ["anna_heatpump_heating"], indirect=True)
|
|
@pytest.mark.parametrize("cooling_present", [True], indirect=True)
|
|
@pytest.mark.parametrize("platforms", [(SENSOR_DOMAIN,)])
|
|
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
|
async def test_anna_sensor_snapshot(
|
|
hass: HomeAssistant,
|
|
mock_smile_anna: MagicMock,
|
|
snapshot: SnapshotAssertion,
|
|
entity_registry: er.EntityRegistry,
|
|
setup_platform: MockConfigEntry,
|
|
) -> None:
|
|
"""Test Anna sensor snapshot."""
|
|
await snapshot_platform(hass, entity_registry, snapshot, setup_platform.entry_id)
|
|
|
|
|
|
@pytest.mark.parametrize("chosen_env", ["p1v4_442_single"], indirect=True)
|
|
@pytest.mark.parametrize(
|
|
"gateway_id", ["a455b61e52394b2db5081ce025a430f3"], indirect=True
|
|
)
|
|
@pytest.mark.parametrize("platforms", [(SENSOR_DOMAIN,)])
|
|
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
|
async def test_p1_dsmr_sensor_snapshot(
|
|
hass: HomeAssistant,
|
|
mock_smile_p1: MagicMock,
|
|
snapshot: SnapshotAssertion,
|
|
entity_registry: er.EntityRegistry,
|
|
setup_platform: MockConfigEntry,
|
|
) -> None:
|
|
"""Test P1 1-phase sensor snapshot."""
|
|
await snapshot_platform(hass, entity_registry, snapshot, setup_platform.entry_id)
|
|
|
|
|
|
@pytest.mark.parametrize("chosen_env", ["p1v4_442_triple"], indirect=True)
|
|
@pytest.mark.parametrize(
|
|
"gateway_id", ["03e65b16e4b247a29ae0d75a78cb492e"], indirect=True
|
|
)
|
|
@pytest.mark.parametrize("platforms", [(SENSOR_DOMAIN,)])
|
|
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
|
async def test_p1_3ph_dsmr_sensor_snapshot(
|
|
hass: HomeAssistant,
|
|
mock_smile_p1: MagicMock,
|
|
snapshot: SnapshotAssertion,
|
|
entity_registry: er.EntityRegistry,
|
|
setup_platform: MockConfigEntry,
|
|
) -> None:
|
|
"""Test P1 3-phase sensor snapshot."""
|
|
await snapshot_platform(hass, entity_registry, snapshot, setup_platform.entry_id)
|
|
|
|
|
|
@pytest.mark.parametrize("chosen_env", ["p1v4_442_triple"], indirect=True)
|
|
@pytest.mark.parametrize(
|
|
"gateway_id", ["03e65b16e4b247a29ae0d75a78cb492e"], indirect=True
|
|
)
|
|
async def test_p1_3ph_dsmr_sensor_disabled_entities(
|
|
hass: HomeAssistant,
|
|
entity_registry: er.EntityRegistry,
|
|
mock_smile_p1: MagicMock,
|
|
init_integration: MockConfigEntry,
|
|
) -> None:
|
|
"""Test disabled power related sensor entities intent."""
|
|
entity_id = "sensor.p1_voltage_phase_one"
|
|
state = hass.states.get(entity_id)
|
|
assert not state
|
|
|
|
entity_registry.async_update_entity(entity_id=entity_id, disabled_by=None)
|
|
await hass.async_block_till_done()
|
|
|
|
await hass.config_entries.async_reload(init_integration.entry_id)
|
|
await hass.async_block_till_done()
|
|
|
|
state = hass.states.get("sensor.p1_voltage_phase_one")
|
|
assert state
|
|
assert float(state.state) == 233.2
|
|
|
|
|
|
@pytest.mark.parametrize("platforms", [(SENSOR_DOMAIN,)])
|
|
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
|
async def test_stretch_sensor_snapshot(
|
|
hass: HomeAssistant,
|
|
mock_stretch: MagicMock,
|
|
snapshot: SnapshotAssertion,
|
|
entity_registry: er.EntityRegistry,
|
|
setup_platform: MockConfigEntry,
|
|
) -> None:
|
|
"""Test Stretch sensor snapshot."""
|
|
await snapshot_platform(hass, entity_registry, snapshot, setup_platform.entry_id)
|