core/tests/components/steamist/test_switch.py

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