core/tests/components/airzone/test_switch.py

103 lines
2.4 KiB
Python

"""The switch tests for the Airzone platform."""
from unittest.mock import patch
from aioairzone.const import API_DATA, API_ON, API_SYSTEM_ID, API_ZONE_ID
from homeassistant.components.switch import DOMAIN as SWITCH_DOMAIN
from homeassistant.const import (
ATTR_ENTITY_ID,
SERVICE_TURN_OFF,
SERVICE_TURN_ON,
STATE_OFF,
STATE_ON,
)
from homeassistant.core import HomeAssistant
from .util import async_init_integration
async def test_airzone_create_switches(hass: HomeAssistant) -> None:
"""Test creation of switches."""
await async_init_integration(hass)
state = hass.states.get("switch.despacho")
assert state.state == STATE_OFF
state = hass.states.get("switch.dorm_1")
assert state.state == STATE_ON
state = hass.states.get("switch.dorm_2")
assert state.state == STATE_OFF
state = hass.states.get("switch.dorm_ppal")
assert state.state == STATE_ON
state = hass.states.get("switch.salon")
assert state.state == STATE_OFF
async def test_airzone_switch_off(hass: HomeAssistant) -> None:
"""Test switch off."""
await async_init_integration(hass)
put_hvac_off = {
API_DATA: [
{
API_SYSTEM_ID: 1,
API_ZONE_ID: 3,
API_ON: False,
}
]
}
with patch(
"homeassistant.components.airzone.AirzoneLocalApi.put_hvac",
return_value=put_hvac_off,
):
await hass.services.async_call(
SWITCH_DOMAIN,
SERVICE_TURN_OFF,
{
ATTR_ENTITY_ID: "switch.dorm_1",
},
blocking=True,
)
state = hass.states.get("switch.dorm_1")
assert state.state == STATE_OFF
async def test_airzone_switch_on(hass: HomeAssistant) -> None:
"""Test switch on."""
await async_init_integration(hass)
put_hvac_on = {
API_DATA: [
{
API_SYSTEM_ID: 1,
API_ZONE_ID: 5,
API_ON: True,
}
]
}
with patch(
"homeassistant.components.airzone.AirzoneLocalApi.put_hvac",
return_value=put_hvac_on,
):
await hass.services.async_call(
SWITCH_DOMAIN,
SERVICE_TURN_ON,
{
ATTR_ENTITY_ID: "switch.dorm_2",
},
blocking=True,
)
state = hass.states.get("switch.dorm_2")
assert state.state == STATE_ON