From f1f48475f24b5caa98b35557bd044c133c54872d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Sat, 19 Mar 2022 22:34:52 +0100 Subject: [PATCH] Add Airzone coordinator tests (#68384) --- tests/components/airzone/test_coordinator.py | 39 ++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 tests/components/airzone/test_coordinator.py diff --git a/tests/components/airzone/test_coordinator.py b/tests/components/airzone/test_coordinator.py new file mode 100644 index 00000000000..00ef0616b3e --- /dev/null +++ b/tests/components/airzone/test_coordinator.py @@ -0,0 +1,39 @@ +"""Define tests for the Airzone coordinator.""" + +from unittest.mock import MagicMock, patch + +from aiohttp import ClientConnectorError + +from homeassistant.components.airzone.const import DOMAIN +from homeassistant.components.airzone.coordinator import SCAN_INTERVAL +from homeassistant.const import STATE_UNAVAILABLE +from homeassistant.core import HomeAssistant +from homeassistant.util.dt import utcnow + +from .util import CONFIG, HVAC_MOCK + +from tests.common import MockConfigEntry, async_fire_time_changed + + +async def test_coordinator_client_connector_error(hass: HomeAssistant): + """Test ClientConnectorError on coordinator update.""" + + entry = MockConfigEntry(domain=DOMAIN, data=CONFIG) + entry.add_to_hass(hass) + + with patch( + "homeassistant.components.airzone.AirzoneLocalApi.get_hvac", + return_value=HVAC_MOCK, + ) as mock_hvac: + await hass.config_entries.async_setup(entry.entry_id) + await hass.async_block_till_done() + mock_hvac.assert_called_once() + mock_hvac.reset_mock() + + mock_hvac.side_effect = ClientConnectorError(MagicMock(), MagicMock()) + async_fire_time_changed(hass, utcnow() + SCAN_INTERVAL) + await hass.async_block_till_done() + mock_hvac.assert_called_once() + + state = hass.states.get("sensor.despacho_temperature") + assert state.state == STATE_UNAVAILABLE