| 
6 | 6 | import logging  | 
7 | 7 | from unittest.mock import patch  | 
8 | 8 | 
 
  | 
9 |  | -from evohomeasync2 import exceptions as exc  | 
 | 9 | +from evohomeasync2 import EvohomeClient, exceptions as exc  | 
10 | 10 | from evohomeasync2.broker import _ERR_MSG_LOOKUP_AUTH, _ERR_MSG_LOOKUP_BASE  | 
11 | 11 | from freezegun.api import FrozenDateTimeFactory  | 
12 | 12 | import pytest  | 
13 | 13 | from syrupy import SnapshotAssertion  | 
14 | 14 | 
 
  | 
15 |  | -from homeassistant.components.evohome import DOMAIN  | 
 | 15 | +from homeassistant.components.evohome import DOMAIN, EvoService  | 
16 | 16 | from homeassistant.core import HomeAssistant  | 
17 | 17 | from homeassistant.setup import async_setup_component  | 
18 | 18 | 
 
  | 
@@ -146,3 +146,45 @@ async def test_client_request_failure_v2(  | 
146 | 146 |     assert caplog.record_tuples == REQUEST_FAILED_LOOKUP.get(  | 
147 | 147 |         status, [SETUP_FAILED_UNEXPECTED]  | 
148 | 148 |     )  | 
 | 149 | + | 
 | 150 | + | 
 | 151 | +@pytest.mark.parametrize("install", ["default"])  | 
 | 152 | +async def test_service_refresh_system(  | 
 | 153 | +    hass: HomeAssistant,  | 
 | 154 | +    evohome: EvohomeClient,  | 
 | 155 | +) -> None:  | 
 | 156 | +    """Test EvoService.REFRESH_SYSTEM of an evohome system."""  | 
 | 157 | + | 
 | 158 | +    # EvoService.REFRESH_SYSTEM  | 
 | 159 | +    with patch("evohomeasync2.location.Location.refresh_status") as mock_fcn:  | 
 | 160 | +        await hass.services.async_call(  | 
 | 161 | +            DOMAIN,  | 
 | 162 | +            EvoService.REFRESH_SYSTEM,  | 
 | 163 | +            {},  | 
 | 164 | +            blocking=True,  | 
 | 165 | +        )  | 
 | 166 | + | 
 | 167 | +        assert mock_fcn.await_count == 1  | 
 | 168 | +        assert mock_fcn.await_args.args == ()  | 
 | 169 | +        assert mock_fcn.await_args.kwargs == {}  | 
 | 170 | + | 
 | 171 | + | 
 | 172 | +@pytest.mark.parametrize("install", ["default"])  | 
 | 173 | +async def test_service_reset_system(  | 
 | 174 | +    hass: HomeAssistant,  | 
 | 175 | +    evohome: EvohomeClient,  | 
 | 176 | +) -> None:  | 
 | 177 | +    """Test EvoService.RESET_SYSTEM of an evohome system."""  | 
 | 178 | + | 
 | 179 | +    # EvoService.RESET_SYSTEM (if SZ_AUTO_WITH_RESET in modes)  | 
 | 180 | +    with patch("evohomeasync2.controlsystem.ControlSystem.set_mode") as mock_fcn:  | 
 | 181 | +        await hass.services.async_call(  | 
 | 182 | +            DOMAIN,  | 
 | 183 | +            EvoService.RESET_SYSTEM,  | 
 | 184 | +            {},  | 
 | 185 | +            blocking=True,  | 
 | 186 | +        )  | 
 | 187 | + | 
 | 188 | +        assert mock_fcn.await_count == 1  | 
 | 189 | +        assert mock_fcn.await_args.args == ("AutoWithReset",)  | 
 | 190 | +        assert mock_fcn.await_args.kwargs == {"until": None}  | 
0 commit comments