mirror of https://github.com/home-assistant/core
86 lines
2.7 KiB
Python
86 lines
2.7 KiB
Python
"""Test Command line component setup process."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from datetime import timedelta
|
|
from unittest.mock import patch
|
|
|
|
import pytest
|
|
|
|
from homeassistant import config as hass_config
|
|
from homeassistant.components.command_line.const import DOMAIN
|
|
from homeassistant.const import SERVICE_RELOAD, STATE_ON, STATE_OPEN
|
|
from homeassistant.core import HomeAssistant
|
|
import homeassistant.util.dt as dt_util
|
|
|
|
from tests.common import async_fire_time_changed, get_fixture_path
|
|
|
|
|
|
async def test_setup_config(hass: HomeAssistant, load_yaml_integration: None) -> None:
|
|
"""Test setup from yaml."""
|
|
|
|
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(minutes=10))
|
|
await hass.async_block_till_done(wait_background_tasks=True)
|
|
|
|
state_binary_sensor = hass.states.get("binary_sensor.test")
|
|
state_sensor = hass.states.get("sensor.test")
|
|
state_cover = hass.states.get("cover.test")
|
|
state_switch = hass.states.get("switch.test")
|
|
|
|
assert state_binary_sensor.state == STATE_ON
|
|
assert state_sensor.state == "5"
|
|
assert state_cover.state == STATE_OPEN
|
|
assert state_switch.state == STATE_ON
|
|
|
|
|
|
async def test_reload_service(
|
|
hass: HomeAssistant, load_yaml_integration: None, caplog: pytest.LogCaptureFixture
|
|
) -> None:
|
|
"""Test reload serviice."""
|
|
|
|
async_fire_time_changed(hass, dt_util.utcnow() + timedelta(minutes=10))
|
|
await hass.async_block_till_done()
|
|
|
|
state_binary_sensor = hass.states.get("binary_sensor.test")
|
|
state_sensor = hass.states.get("sensor.test")
|
|
assert state_binary_sensor.state == STATE_ON
|
|
assert state_sensor.state == "5"
|
|
|
|
caplog.clear()
|
|
|
|
yaml_path = get_fixture_path("configuration.yaml", "command_line")
|
|
with patch.object(hass_config, "YAML_CONFIG_FILE", yaml_path):
|
|
await hass.services.async_call(
|
|
DOMAIN,
|
|
SERVICE_RELOAD,
|
|
{},
|
|
blocking=True,
|
|
)
|
|
await hass.async_block_till_done()
|
|
|
|
assert "Loading config" in caplog.text
|
|
|
|
state_binary_sensor = hass.states.get("binary_sensor.test")
|
|
state_sensor = hass.states.get("sensor.test")
|
|
assert state_binary_sensor.state == STATE_ON
|
|
assert not state_sensor
|
|
|
|
caplog.clear()
|
|
|
|
yaml_path = get_fixture_path("configuration_empty.yaml", "command_line")
|
|
with patch.object(hass_config, "YAML_CONFIG_FILE", yaml_path):
|
|
await hass.services.async_call(
|
|
DOMAIN,
|
|
SERVICE_RELOAD,
|
|
{},
|
|
blocking=True,
|
|
)
|
|
await hass.async_block_till_done()
|
|
|
|
state_binary_sensor = hass.states.get("binary_sensor.test")
|
|
state_sensor = hass.states.get("sensor.test")
|
|
assert not state_binary_sensor
|
|
assert not state_sensor
|
|
|
|
assert "Loading config" not in caplog.text
|