hass-core/tests/components/airzone/test_select.py
Álvaro Fernández Rojas a29adc0a6a
Airzone select improvements (#92894)
* airzone: select: remove unneed .keys()

Fixes late comment when select platform was introduced.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: select: make options translatable

This was a late comment when the select platform was introduced.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: select: change options to lists (from enums)

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* tests: airzone: fix python 3.10 tests

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: select: add manual dict values

This was requested in order to keep control of the translation strings.

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* Revert "airzone: select: add manual dict values"

This reverts commit b818a2674d.

* Revert "tests: airzone: fix python 3.10 tests"

This reverts commit 93f8bd1430.

* Revert "airzone: select: change options to lists (from enums)"

This reverts commit e503a1dd3a.

* airzone: select: options: copy dict to list

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

* airzone: select: use degree symbol

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>

---------

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
2023-05-24 08:21:24 +02:00

177 lines
4.5 KiB
Python

"""The select tests for the Airzone platform."""
from unittest.mock import patch
from aioairzone.const import (
API_COLD_ANGLE,
API_DATA,
API_HEAT_ANGLE,
API_SLEEP,
API_SYSTEM_ID,
API_ZONE_ID,
)
import pytest
from homeassistant.components.select import DOMAIN as SELECT_DOMAIN
from homeassistant.const import ATTR_ENTITY_ID, ATTR_OPTION, SERVICE_SELECT_OPTION
from homeassistant.core import HomeAssistant
from .util import async_init_integration
async def test_airzone_create_selects(hass: HomeAssistant) -> None:
"""Test creation of selects."""
await async_init_integration(hass)
state = hass.states.get("select.despacho_cold_angle")
assert state.state == "90deg"
state = hass.states.get("select.despacho_heat_angle")
assert state.state == "90deg"
state = hass.states.get("select.despacho_sleep")
assert state.state == "off"
state = hass.states.get("select.dorm_1_cold_angle")
assert state.state == "90deg"
state = hass.states.get("select.dorm_1_heat_angle")
assert state.state == "90deg"
state = hass.states.get("select.dorm_1_sleep")
assert state.state == "off"
state = hass.states.get("select.dorm_2_cold_angle")
assert state.state == "90deg"
state = hass.states.get("select.dorm_2_heat_angle")
assert state.state == "90deg"
state = hass.states.get("select.dorm_2_sleep")
assert state.state == "off"
state = hass.states.get("select.dorm_ppal_cold_angle")
assert state.state == "45deg"
state = hass.states.get("select.dorm_ppal_heat_angle")
assert state.state == "50deg"
state = hass.states.get("select.dorm_ppal_sleep")
assert state.state == "30m"
state = hass.states.get("select.salon_cold_angle")
assert state.state == "90deg"
state = hass.states.get("select.salon_heat_angle")
assert state.state == "90deg"
state = hass.states.get("select.salon_sleep")
assert state.state == "off"
async def test_airzone_select_sleep(hass: HomeAssistant) -> None:
"""Test select sleep."""
await async_init_integration(hass)
put_hvac_sleep = {
API_DATA: [
{
API_SYSTEM_ID: 1,
API_ZONE_ID: 3,
API_SLEEP: 30,
}
]
}
with pytest.raises(ValueError):
await hass.services.async_call(
SELECT_DOMAIN,
SERVICE_SELECT_OPTION,
{
ATTR_ENTITY_ID: "select.dorm_1_sleep",
ATTR_OPTION: "Invalid",
},
blocking=True,
)
with patch(
"homeassistant.components.airzone.AirzoneLocalApi.put_hvac",
return_value=put_hvac_sleep,
):
await hass.services.async_call(
SELECT_DOMAIN,
SERVICE_SELECT_OPTION,
{
ATTR_ENTITY_ID: "select.dorm_1_sleep",
ATTR_OPTION: "30m",
},
blocking=True,
)
state = hass.states.get("select.dorm_1_sleep")
assert state.state == "30m"
async def test_airzone_select_grille_angle(hass: HomeAssistant) -> None:
"""Test select sleep."""
await async_init_integration(hass)
# Cold Angle
put_hvac_cold_angle = {
API_DATA: [
{
API_SYSTEM_ID: 1,
API_ZONE_ID: 3,
API_COLD_ANGLE: 1,
}
]
}
with patch(
"homeassistant.components.airzone.AirzoneLocalApi.put_hvac",
return_value=put_hvac_cold_angle,
):
await hass.services.async_call(
SELECT_DOMAIN,
SERVICE_SELECT_OPTION,
{
ATTR_ENTITY_ID: "select.dorm_1_cold_angle",
ATTR_OPTION: "50deg",
},
blocking=True,
)
state = hass.states.get("select.dorm_1_cold_angle")
assert state.state == "50deg"
# Heat Angle
put_hvac_heat_angle = {
API_DATA: [
{
API_SYSTEM_ID: 1,
API_ZONE_ID: 3,
API_HEAT_ANGLE: 2,
}
]
}
with patch(
"homeassistant.components.airzone.AirzoneLocalApi.put_hvac",
return_value=put_hvac_heat_angle,
):
await hass.services.async_call(
SELECT_DOMAIN,
SERVICE_SELECT_OPTION,
{
ATTR_ENTITY_ID: "select.dorm_1_heat_angle",
ATTR_OPTION: "45deg",
},
blocking=True,
)
state = hass.states.get("select.dorm_1_heat_angle")
assert state.state == "45deg"