core/tests/components/venstar/util.py

64 lines
2.1 KiB
Python

"""Tests for the venstar integration."""
import requests_mock
from homeassistant.components.climate import DOMAIN as CLIMATE_DOMAIN
from homeassistant.components.venstar.const import DOMAIN
from homeassistant.const import CONF_HOST, CONF_PLATFORM
from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component
from tests.common import async_load_fixture
TEST_MODELS = ["t2k", "colortouch"]
def mock_venstar_devices(f):
"""Decorate function to mock a Venstar Colortouch and T2000 thermostat API."""
async def wrapper(hass: HomeAssistant) -> None:
# Mock thermostats are:
# Venstar T2000, FW 4.38
# Venstar "colortouch" T7850, FW 5.1
with requests_mock.mock() as m:
for model in TEST_MODELS:
m.get(
f"http://venstar-{model}.localdomain/",
text=await async_load_fixture(hass, f"{model}_root.json", DOMAIN),
)
m.get(
f"http://venstar-{model}.localdomain/query/info",
text=await async_load_fixture(hass, f"{model}_info.json", DOMAIN),
)
m.get(
f"http://venstar-{model}.localdomain/query/sensors",
text=await async_load_fixture(
hass, f"{model}_sensors.json", DOMAIN
),
)
m.get(
f"http://venstar-{model}.localdomain/query/alerts",
text=await async_load_fixture(hass, f"{model}_alerts.json", DOMAIN),
)
await f(hass)
return wrapper
async def async_init_integration(
hass: HomeAssistant,
skip_setup: bool = False,
):
"""Set up the venstar integration in Home Assistant."""
platform_config = [
{
CONF_PLATFORM: "venstar",
CONF_HOST: f"venstar-{model}.localdomain",
}
for model in TEST_MODELS
]
config = {CLIMATE_DOMAIN: platform_config}
await async_setup_component(hass, CLIMATE_DOMAIN, config)
await hass.async_block_till_done()