core/tests/components/nexia/test_number.py

63 lines
2.0 KiB
Python

"""The number entity tests for the nexia platform."""
from homeassistant.components.number import (
ATTR_VALUE,
DOMAIN as NUMBER_DOMAIN,
SERVICE_SET_VALUE,
)
from homeassistant.core import HomeAssistant
from .util import async_init_integration
async def test_create_fan_speed_number_entities(hass: HomeAssistant) -> None:
"""Test creation of fan speed number entities."""
await async_init_integration(hass)
state = hass.states.get("number.master_suite_fan_speed")
assert state.state == "35.0"
expected_attributes = {
"attribution": "Data provided by Trane Technologies",
"friendly_name": "Master Suite Fan speed",
"min": 35,
"max": 100,
}
# Only test for a subset of attributes in case
# HA changes the implementation and a new one appears
assert all(
state.attributes[key] == value for key, value in expected_attributes.items()
)
state = hass.states.get("number.downstairs_east_wing_fan_speed")
assert state.state == "35.0"
expected_attributes = {
"attribution": "Data provided by Trane Technologies",
"friendly_name": "Downstairs East Wing Fan speed",
"min": 35,
"max": 100,
}
# Only test for a subset of attributes in case
# HA changes the implementation and a new one appears
assert all(
state.attributes[key] == value for key, value in expected_attributes.items()
)
async def test_set_fan_speed(hass: HomeAssistant) -> None:
"""Test setting fan speed."""
await async_init_integration(hass)
state_before = hass.states.get("number.master_suite_fan_speed")
assert state_before.state == "35.0"
await hass.services.async_call(
NUMBER_DOMAIN,
SERVICE_SET_VALUE,
service_data={ATTR_VALUE: 50},
blocking=True,
target={"entity_id": "number.master_suite_fan_speed"},
)
state = hass.states.get("number.master_suite_fan_speed")
assert state.state == "50.0"