diff --git a/tests/components/aemet/test_config_flow.py b/tests/components/aemet/test_config_flow.py index 8c3264d8975..0caacf4e4c0 100644 --- a/tests/components/aemet/test_config_flow.py +++ b/tests/components/aemet/test_config_flow.py @@ -2,6 +2,7 @@ from unittest.mock import AsyncMock, MagicMock, patch from aemet_opendata.exceptions import AuthError +from freezegun.api import FrozenDateTimeFactory import pytest from homeassistant import data_entry_flow @@ -9,7 +10,6 @@ from homeassistant.components.aemet.const import CONF_STATION_UPDATES, DOMAIN from homeassistant.config_entries import SOURCE_USER, ConfigEntryState from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME from homeassistant.core import HomeAssistant -import homeassistant.util.dt as dt_util from .util import mock_api_call @@ -59,13 +59,15 @@ async def test_form(hass: HomeAssistant, mock_setup_entry: AsyncMock) -> None: assert len(mock_setup_entry.mock_calls) == 1 -async def test_form_options(hass: HomeAssistant) -> None: +async def test_form_options( + hass: HomeAssistant, + freezer: FrozenDateTimeFactory, +) -> None: """Test the form options.""" - now = dt_util.parse_datetime("2021-01-09 12:00:00+00:00") - with patch("homeassistant.util.dt.now", return_value=now), patch( - "homeassistant.util.dt.utcnow", return_value=now - ), patch( + hass.config.set_time_zone("UTC") + freezer.move_to("2021-01-09 12:00:00+00:00") + with patch( "homeassistant.components.aemet.AEMET.api_call", side_effect=mock_api_call, ): @@ -116,13 +118,15 @@ async def test_form_options(hass: HomeAssistant) -> None: assert entry.state is ConfigEntryState.LOADED -async def test_form_duplicated_id(hass: HomeAssistant) -> None: +async def test_form_duplicated_id( + hass: HomeAssistant, + freezer: FrozenDateTimeFactory, +) -> None: """Test setting up duplicated entry.""" - now = dt_util.parse_datetime("2021-01-09 12:00:00+00:00") - with patch("homeassistant.util.dt.now", return_value=now), patch( - "homeassistant.util.dt.utcnow", return_value=now - ), patch( + hass.config.set_time_zone("UTC") + freezer.move_to("2021-01-09 12:00:00+00:00") + with patch( "homeassistant.components.aemet.AEMET.api_call", side_effect=mock_api_call, ): diff --git a/tests/components/aemet/test_init.py b/tests/components/aemet/test_init.py index f9eac318c6c..5055575e3fe 100644 --- a/tests/components/aemet/test_init.py +++ b/tests/components/aemet/test_init.py @@ -7,7 +7,6 @@ from homeassistant.components.aemet.const import DOMAIN from homeassistant.config_entries import ConfigEntryState from homeassistant.const import CONF_API_KEY, CONF_LATITUDE, CONF_LONGITUDE, CONF_NAME from homeassistant.core import HomeAssistant -import homeassistant.util.dt as dt_util from .util import mock_api_call @@ -21,13 +20,15 @@ CONFIG = { } -async def test_unload_entry(hass: HomeAssistant) -> None: - """Test that the options form.""" +async def test_unload_entry( + hass: HomeAssistant, + freezer: FrozenDateTimeFactory, +) -> None: + """Test (un)loading the AEMET integration.""" - now = dt_util.parse_datetime("2021-01-09 12:00:00+00:00") - with patch("homeassistant.util.dt.now", return_value=now), patch( - "homeassistant.util.dt.utcnow", return_value=now - ), patch( + hass.config.set_time_zone("UTC") + freezer.move_to("2021-01-09 12:00:00+00:00") + with patch( "homeassistant.components.aemet.AEMET.api_call", side_effect=mock_api_call, ): diff --git a/tests/components/aemet/test_sensor.py b/tests/components/aemet/test_sensor.py index 99bce6b9471..4d61dde34fc 100644 --- a/tests/components/aemet/test_sensor.py +++ b/tests/components/aemet/test_sensor.py @@ -1,5 +1,6 @@ """The sensor tests for the AEMET OpenData platform.""" -from unittest.mock import patch + +from freezegun.api import FrozenDateTimeFactory from homeassistant.components.weather import ( ATTR_CONDITION_PARTLYCLOUDY, @@ -12,15 +13,15 @@ import homeassistant.util.dt as dt_util from .util import async_init_integration -async def test_aemet_forecast_create_sensors(hass: HomeAssistant) -> None: +async def test_aemet_forecast_create_sensors( + hass: HomeAssistant, + freezer: FrozenDateTimeFactory, +) -> None: """Test creation of forecast sensors.""" hass.config.set_time_zone("UTC") - now = dt_util.parse_datetime("2021-01-09 12:00:00+00:00") - with patch("homeassistant.util.dt.now", return_value=now), patch( - "homeassistant.util.dt.utcnow", return_value=now - ): - await async_init_integration(hass) + freezer.move_to("2021-01-09 12:00:00+00:00") + await async_init_integration(hass) state = hass.states.get("sensor.aemet_daily_forecast_condition") assert state.state == ATTR_CONDITION_PARTLYCLOUDY @@ -73,14 +74,15 @@ async def test_aemet_forecast_create_sensors(hass: HomeAssistant) -> None: assert state is None -async def test_aemet_weather_create_sensors(hass: HomeAssistant) -> None: +async def test_aemet_weather_create_sensors( + hass: HomeAssistant, + freezer: FrozenDateTimeFactory, +) -> None: """Test creation of weather sensors.""" - now = dt_util.parse_datetime("2021-01-09 12:00:00+00:00") - with patch("homeassistant.util.dt.now", return_value=now), patch( - "homeassistant.util.dt.utcnow", return_value=now - ): - await async_init_integration(hass) + hass.config.set_time_zone("UTC") + freezer.move_to("2021-01-09 12:00:00+00:00") + await async_init_integration(hass) state = hass.states.get("sensor.aemet_condition") assert state.state == ATTR_CONDITION_SNOWY diff --git a/tests/components/aemet/test_weather.py b/tests/components/aemet/test_weather.py index 703ef4348f8..ddcc29698fd 100644 --- a/tests/components/aemet/test_weather.py +++ b/tests/components/aemet/test_weather.py @@ -40,15 +40,15 @@ from .util import async_init_integration, mock_api_call from tests.typing import WebSocketGenerator -async def test_aemet_weather(hass: HomeAssistant) -> None: +async def test_aemet_weather( + hass: HomeAssistant, + freezer: FrozenDateTimeFactory, +) -> None: """Test states of the weather.""" hass.config.set_time_zone("UTC") - now = dt_util.parse_datetime("2021-01-09 12:00:00+00:00") - with patch("homeassistant.util.dt.now", return_value=now), patch( - "homeassistant.util.dt.utcnow", return_value=now - ): - await async_init_integration(hass) + freezer.move_to("2021-01-09 12:00:00+00:00") + await async_init_integration(hass) state = hass.states.get("weather.aemet") assert state @@ -76,8 +76,11 @@ async def test_aemet_weather(hass: HomeAssistant) -> None: assert state is None -async def test_aemet_weather_legacy(hass: HomeAssistant) -> None: - """Test states of the weather.""" +async def test_aemet_weather_legacy( + hass: HomeAssistant, + freezer: FrozenDateTimeFactory, +) -> None: + """Test states of legacy weather.""" registry = er.async_get(hass) registry.async_get_or_create( @@ -87,11 +90,8 @@ async def test_aemet_weather_legacy(hass: HomeAssistant) -> None: ) hass.config.set_time_zone("UTC") - now = dt_util.parse_datetime("2021-01-09 12:00:00+00:00") - with patch("homeassistant.util.dt.now", return_value=now), patch( - "homeassistant.util.dt.utcnow", return_value=now - ): - await async_init_integration(hass) + freezer.move_to("2021-01-09 12:00:00+00:00") + await async_init_integration(hass) state = hass.states.get("weather.aemet_daily") assert state @@ -121,15 +121,14 @@ async def test_aemet_weather_legacy(hass: HomeAssistant) -> None: async def test_forecast_service( hass: HomeAssistant, + freezer: FrozenDateTimeFactory, snapshot: SnapshotAssertion, ) -> None: """Test multiple forecast.""" + hass.config.set_time_zone("UTC") - now = dt_util.parse_datetime("2021-01-09 12:00:00+00:00") - with patch("homeassistant.util.dt.now", return_value=now), patch( - "homeassistant.util.dt.utcnow", return_value=now - ): - await async_init_integration(hass) + freezer.move_to("2021-01-09 12:00:00+00:00") + await async_init_integration(hass) response = await hass.services.async_call( WEATHER_DOMAIN,