Files
core/tests/components/hydrawise/test_device.py
T

78 lines
2.6 KiB
Python

"""Tests for Hydrawise devices."""
from unittest.mock import Mock
import pytest
from homeassistant.components.hydrawise.const import DOMAIN
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr
def test_zones_in_device_registry(
hass: HomeAssistant,
device_registry: dr.DeviceRegistry,
mock_added_config_entry: ConfigEntry,
mock_pydrawise: Mock,
) -> None:
"""Test that devices are added to the device registry."""
device1 = device_registry.async_get_device(identifiers={(DOMAIN, "5965394")})
assert device1 is not None
assert device1.name == "Zone One"
assert device1.manufacturer == "Hydrawise"
device2 = device_registry.async_get_device(identifiers={(DOMAIN, "5965395")})
assert device2 is not None
assert device2.name == "Zone Two"
assert device2.manufacturer == "Hydrawise"
def test_controller_in_device_registry(
hass: HomeAssistant,
device_registry: dr.DeviceRegistry,
mock_added_config_entry: ConfigEntry,
mock_pydrawise: Mock,
) -> None:
"""Test that devices are added to the device registry."""
device = device_registry.async_get_device(identifiers={(DOMAIN, "52496")})
assert device is not None
assert device.name == "Home Controller"
assert device.manufacturer == "Hydrawise"
@pytest.mark.usefixtures("mock_pydrawise")
def test_zone_via_device_links_to_controller(
device_registry: dr.DeviceRegistry,
mock_added_config_entry: ConfigEntry,
) -> None:
"""Test that a zone device links to its controller via via_device_id."""
controller = device_registry.async_get_device_by_identifier(
(DOMAIN, "52496"), mock_added_config_entry.entry_id
)
assert controller is not None
zone = device_registry.async_get_device_by_identifier(
(DOMAIN, "5965394"), mock_added_config_entry.entry_id
)
assert zone is not None
assert zone.via_device_id == controller.id
@pytest.mark.usefixtures("mock_pydrawise")
def test_controller_has_no_self_via_device(
device_registry: dr.DeviceRegistry,
mock_added_config_entry: ConfigEntry,
) -> None:
"""Test the controller device does not link to itself via via_device_id.
Sensor entities share the controller device, so they must not set
via_device_id, which would point the controller device at itself.
"""
controller = device_registry.async_get_device_by_identifier(
(DOMAIN, "52496"), mock_added_config_entry.entry_id
)
assert controller is not None
assert controller.via_device_id is None