1
mirror of https://github.com/home-assistant/core synced 2024-09-18 19:55:20 +02:00
ha-core/tests/components/litterrobot/test_select.py
Dave T a7ef983a31
Use new enums in litterrobot tests (#62515)
* Use new enums in litterrobot tests

* Code review: swap == for is
2021-12-22 10:00:24 +01:00

74 lines
2.2 KiB
Python

"""Test the Litter-Robot select entity."""
from datetime import timedelta
from pylitterbot.robot import VALID_WAIT_TIMES
import pytest
from homeassistant.components.litterrobot.entity import REFRESH_WAIT_TIME_SECONDS
from homeassistant.components.select import (
ATTR_OPTION,
DOMAIN as PLATFORM_DOMAIN,
SERVICE_SELECT_OPTION,
)
from homeassistant.const import ATTR_ENTITY_ID
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry
from homeassistant.helpers.entity import EntityCategory
from homeassistant.util.dt import utcnow
from .conftest import setup_integration
from tests.common import async_fire_time_changed
SELECT_ENTITY_ID = "select.test_clean_cycle_wait_time_minutes"
async def test_wait_time_select(hass: HomeAssistant, mock_account):
"""Tests the wait time select entity."""
await setup_integration(hass, mock_account, PLATFORM_DOMAIN)
select = hass.states.get(SELECT_ENTITY_ID)
assert select
ent_reg = entity_registry.async_get(hass)
entity_entry = ent_reg.async_get(SELECT_ENTITY_ID)
assert entity_entry
assert entity_entry.entity_category is EntityCategory.CONFIG
data = {ATTR_ENTITY_ID: SELECT_ENTITY_ID}
count = 0
for wait_time in VALID_WAIT_TIMES:
count += 1
data[ATTR_OPTION] = wait_time
await hass.services.async_call(
PLATFORM_DOMAIN,
SERVICE_SELECT_OPTION,
data,
blocking=True,
)
future = utcnow() + timedelta(seconds=REFRESH_WAIT_TIME_SECONDS)
async_fire_time_changed(hass, future)
assert mock_account.robots[0].set_wait_time.call_count == count
async def test_invalid_wait_time_select(hass: HomeAssistant, mock_account):
"""Tests the wait time select entity with invalid value."""
await setup_integration(hass, mock_account, PLATFORM_DOMAIN)
select = hass.states.get(SELECT_ENTITY_ID)
assert select
data = {ATTR_ENTITY_ID: SELECT_ENTITY_ID, ATTR_OPTION: "10"}
with pytest.raises(ValueError):
await hass.services.async_call(
PLATFORM_DOMAIN,
SERVICE_SELECT_OPTION,
data,
blocking=True,
)
assert not mock_account.robots[0].set_wait_time.called