mirror of https://github.com/home-assistant/core
58 lines
2.2 KiB
Python
58 lines
2.2 KiB
Python
"""Tests for the steamist switch."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from datetime import timedelta
|
|
from unittest.mock import AsyncMock
|
|
|
|
from homeassistant.components.switch import DOMAIN as SWITCH_DOMAIN
|
|
from homeassistant.const import ATTR_ENTITY_ID, STATE_OFF, STATE_ON
|
|
from homeassistant.core import HomeAssistant
|
|
import homeassistant.util.dt as dt_util
|
|
|
|
from . import (
|
|
MOCK_ASYNC_GET_STATUS_ACTIVE,
|
|
MOCK_ASYNC_GET_STATUS_INACTIVE,
|
|
_async_setup_entry_with_status,
|
|
)
|
|
|
|
from tests.common import async_fire_time_changed
|
|
|
|
|
|
async def test_steam_active(hass: HomeAssistant) -> None:
|
|
"""Test that the switches are setup with the expected values when steam is active."""
|
|
client, _ = await _async_setup_entry_with_status(hass, MOCK_ASYNC_GET_STATUS_ACTIVE)
|
|
assert len(hass.states.async_all("switch")) == 1
|
|
assert hass.states.get("switch.steam_active").state == STATE_ON
|
|
|
|
client.async_get_status = AsyncMock(return_value=MOCK_ASYNC_GET_STATUS_INACTIVE)
|
|
await hass.services.async_call(
|
|
SWITCH_DOMAIN,
|
|
"turn_off",
|
|
{ATTR_ENTITY_ID: "switch.steam_active"},
|
|
blocking=True,
|
|
)
|
|
client.async_turn_off_steam.assert_called_once()
|
|
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(seconds=5))
|
|
await hass.async_block_till_done()
|
|
assert hass.states.get("switch.steam_active").state == STATE_OFF
|
|
|
|
|
|
async def test_steam_inactive(hass: HomeAssistant) -> None:
|
|
"""Test that the switches are setup with the expected values when steam is not active."""
|
|
client, _ = await _async_setup_entry_with_status(
|
|
hass, MOCK_ASYNC_GET_STATUS_INACTIVE
|
|
)
|
|
|
|
assert len(hass.states.async_all("switch")) == 1
|
|
assert hass.states.get("switch.steam_active").state == STATE_OFF
|
|
|
|
client.async_get_status = AsyncMock(return_value=MOCK_ASYNC_GET_STATUS_ACTIVE)
|
|
await hass.services.async_call(
|
|
SWITCH_DOMAIN, "turn_on", {ATTR_ENTITY_ID: "switch.steam_active"}, blocking=True
|
|
)
|
|
client.async_turn_on_steam.assert_called_once()
|
|
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(seconds=5))
|
|
await hass.async_block_till_done()
|
|
assert hass.states.get("switch.steam_active").state == STATE_ON
|