Add tests of evohome integration-specific services (#129206)

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
This commit is contained in:
David Bonnes 2024-10-26 13:44:46 +01:00 committed by GitHub
parent c59197e87a
commit 9b3ed3ed72
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -6,13 +6,13 @@ from http import HTTPStatus
import logging import logging
from unittest.mock import patch from unittest.mock import patch
from evohomeasync2 import exceptions as exc from evohomeasync2 import EvohomeClient, exceptions as exc
from evohomeasync2.broker import _ERR_MSG_LOOKUP_AUTH, _ERR_MSG_LOOKUP_BASE from evohomeasync2.broker import _ERR_MSG_LOOKUP_AUTH, _ERR_MSG_LOOKUP_BASE
from freezegun.api import FrozenDateTimeFactory from freezegun.api import FrozenDateTimeFactory
import pytest import pytest
from syrupy import SnapshotAssertion from syrupy import SnapshotAssertion
from homeassistant.components.evohome import DOMAIN from homeassistant.components.evohome import DOMAIN, EvoService
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.setup import async_setup_component from homeassistant.setup import async_setup_component
@ -146,3 +146,45 @@ async def test_client_request_failure_v2(
assert caplog.record_tuples == REQUEST_FAILED_LOOKUP.get( assert caplog.record_tuples == REQUEST_FAILED_LOOKUP.get(
status, [SETUP_FAILED_UNEXPECTED] status, [SETUP_FAILED_UNEXPECTED]
) )
@pytest.mark.parametrize("install", ["default"])
async def test_service_refresh_system(
hass: HomeAssistant,
evohome: EvohomeClient,
) -> None:
"""Test EvoService.REFRESH_SYSTEM of an evohome system."""
# EvoService.REFRESH_SYSTEM
with patch("evohomeasync2.location.Location.refresh_status") as mock_fcn:
await hass.services.async_call(
DOMAIN,
EvoService.REFRESH_SYSTEM,
{},
blocking=True,
)
assert mock_fcn.await_count == 1
assert mock_fcn.await_args.args == ()
assert mock_fcn.await_args.kwargs == {}
@pytest.mark.parametrize("install", ["default"])
async def test_service_reset_system(
hass: HomeAssistant,
evohome: EvohomeClient,
) -> None:
"""Test EvoService.RESET_SYSTEM of an evohome system."""
# EvoService.RESET_SYSTEM (if SZ_AUTO_WITH_RESET in modes)
with patch("evohomeasync2.controlsystem.ControlSystem.set_mode") as mock_fcn:
await hass.services.async_call(
DOMAIN,
EvoService.RESET_SYSTEM,
{},
blocking=True,
)
assert mock_fcn.await_count == 1
assert mock_fcn.await_args.args == ("AutoWithReset",)
assert mock_fcn.await_args.kwargs == {"until": None}