79 lines
2.3 KiB
Python
79 lines
2.3 KiB
Python
"""Vera tests."""
|
|
from unittest.mock import MagicMock
|
|
|
|
from pyvera import (
|
|
VeraArmableDevice,
|
|
VeraBinarySensor,
|
|
VeraController,
|
|
VeraCurtain,
|
|
VeraDevice,
|
|
VeraDimmer,
|
|
VeraLock,
|
|
VeraScene,
|
|
VeraSceneController,
|
|
VeraSensor,
|
|
VeraSwitch,
|
|
VeraThermostat,
|
|
)
|
|
|
|
from homeassistant.components.vera import (
|
|
CONF_EXCLUDE,
|
|
CONF_LIGHTS,
|
|
DOMAIN,
|
|
VERA_DEVICES,
|
|
)
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from .common import ComponentFactory
|
|
|
|
|
|
def new_vera_device(cls, device_id: int) -> VeraDevice:
|
|
"""Create new mocked vera device.."""
|
|
vera_device = MagicMock(spec=cls) # type: VeraDevice
|
|
vera_device.device_id = device_id
|
|
vera_device.name = f"dev${device_id}"
|
|
return vera_device
|
|
|
|
|
|
def assert_hass_vera_devices(hass: HomeAssistant, platform: str, arr_len: int) -> None:
|
|
"""Assert vera devices are present.."""
|
|
assert hass.data[VERA_DEVICES][platform]
|
|
assert len(hass.data[VERA_DEVICES][platform]) == arr_len
|
|
|
|
|
|
async def test_init(
|
|
hass: HomeAssistant, vera_component_factory: ComponentFactory
|
|
) -> None:
|
|
"""Test function."""
|
|
|
|
def setup_callback(controller: VeraController, hass_config: dict) -> None:
|
|
hass_config[DOMAIN][CONF_EXCLUDE] = [11]
|
|
hass_config[DOMAIN][CONF_LIGHTS] = [10]
|
|
|
|
await vera_component_factory.configure_component(
|
|
hass=hass,
|
|
devices=(
|
|
new_vera_device(VeraDimmer, 1),
|
|
new_vera_device(VeraBinarySensor, 2),
|
|
new_vera_device(VeraSensor, 3),
|
|
new_vera_device(VeraArmableDevice, 4),
|
|
new_vera_device(VeraLock, 5),
|
|
new_vera_device(VeraThermostat, 6),
|
|
new_vera_device(VeraCurtain, 7),
|
|
new_vera_device(VeraSceneController, 8),
|
|
new_vera_device(VeraSwitch, 9),
|
|
new_vera_device(VeraSwitch, 10),
|
|
new_vera_device(VeraSwitch, 11),
|
|
),
|
|
scenes=(MagicMock(spec=VeraScene),),
|
|
setup_callback=setup_callback,
|
|
)
|
|
|
|
assert_hass_vera_devices(hass, "light", 2)
|
|
assert_hass_vera_devices(hass, "binary_sensor", 1)
|
|
assert_hass_vera_devices(hass, "sensor", 2)
|
|
assert_hass_vera_devices(hass, "switch", 2)
|
|
assert_hass_vera_devices(hass, "lock", 1)
|
|
assert_hass_vera_devices(hass, "climate", 1)
|
|
assert_hass_vera_devices(hass, "cover", 1)
|