77from plugwise .exceptions import PlugwiseError
88import pytest
99
10+ from freezegun .api import FrozenDateTimeFactory
1011from homeassistant .components .climate .const import HVACMode
1112from homeassistant .core import HomeAssistant
1213from homeassistant .exceptions import HomeAssistantError , ServiceValidationError
13- from homeassistant .util .dt import utcnow
1414
1515from tests .common import MockConfigEntry , async_fire_time_changed
1616
@@ -97,7 +97,10 @@ async def test_adam_2_climate_entity_attributes(
9797
9898
9999async def test_adam_3_climate_entity_attributes (
100- hass : HomeAssistant , mock_smile_adam_3 : MagicMock , init_integration : MockConfigEntry
100+ hass : HomeAssistant ,
101+ mock_smile_adam_3 : MagicMock ,
102+ init_integration : MockConfigEntry ,
103+ freezer : FrozenDateTimeFactory ,
101104) -> None :
102105 """Test creation of adam climate device environment."""
103106 state = hass .states .get ("climate.anna" )
@@ -109,6 +112,7 @@ async def test_adam_3_climate_entity_attributes(
109112 HVACMode .AUTO ,
110113 HVACMode .COOL ,
111114 ]
115+
112116 data = mock_smile_adam_3 .async_update .return_value
113117 data .devices ["da224107914542988a88561b4452b0f6" ][
114118 "select_regulation_mode"
@@ -121,17 +125,20 @@ async def test_adam_3_climate_entity_attributes(
121125 "heating_state"
122126 ] = True
123127 with patch (HA_PLUGWISE_SMILE_ASYNC_UPDATE , return_value = data ):
124- async_fire_time_changed (hass , utcnow () + timedelta (minutes = 1 ))
128+ freezer .tick (timedelta (minutes = 1 ))
129+ async_fire_time_changed (hass )
125130 await hass .async_block_till_done ()
126- state = hass .states .get ("climate.anna" )
127- assert state
128- assert state .state == HVACMode .HEAT
129- assert state .attributes ["hvac_action" ] == "heating"
130- assert state .attributes ["hvac_modes" ] == [
131- HVACMode .OFF ,
132- HVACMode .AUTO ,
133- HVACMode .HEAT ,
134- ]
131+
132+ state = hass .states .get ("climate.anna" )
133+ assert state
134+ assert state .state == HVACMode .HEAT
135+ assert state .attributes ["hvac_action" ] == "heating"
136+ assert state .attributes ["hvac_modes" ] == [
137+ HVACMode .OFF ,
138+ HVACMode .AUTO ,
139+ HVACMode .HEAT ,
140+ ]
141+
135142 data = mock_smile_adam_3 .async_update .return_value
136143 data .devices ["da224107914542988a88561b4452b0f6" ][
137144 "select_regulation_mode"
@@ -144,17 +151,19 @@ async def test_adam_3_climate_entity_attributes(
144151 "heating_state"
145152 ] = False
146153 with patch (HA_PLUGWISE_SMILE_ASYNC_UPDATE , return_value = data ):
147- async_fire_time_changed (hass , utcnow () + timedelta (minutes = 1 ))
154+ freezer .tick (timedelta (minutes = 1 ))
155+ async_fire_time_changed (hass )
148156 await hass .async_block_till_done ()
149- state = hass .states .get ("climate.anna" )
150- assert state
151- assert state .state == HVACMode .COOL
152- assert state .attributes ["hvac_action" ] == "cooling"
153- assert state .attributes ["hvac_modes" ] == [
154- HVACMode .OFF ,
155- HVACMode .AUTO ,
156- HVACMode .COOL ,
157- ]
157+
158+ state = hass .states .get ("climate.anna" )
159+ assert state
160+ assert state .state == HVACMode .COOL
161+ assert state .attributes ["hvac_action" ] == "cooling"
162+ assert state .attributes ["hvac_modes" ] == [
163+ HVACMode .OFF ,
164+ HVACMode .AUTO ,
165+ HVACMode .COOL ,
166+ ]
158167
159168
160169async def test_adam_climate_adjust_negative_testing (
@@ -365,6 +374,7 @@ async def test_anna_climate_entity_climate_changes(
365374 hass : HomeAssistant ,
366375 mock_smile_anna : MagicMock ,
367376 init_integration : MockConfigEntry ,
377+ freezer : FrozenDateTimeFactory ,
368378) -> None :
369379 """Test handling of user requests in anna climate device environment."""
370380 await hass .services .async_call (
@@ -409,11 +419,14 @@ async def test_anna_climate_entity_climate_changes(
409419 mock_smile_anna .set_schedule_state .assert_called_with (
410420 "c784ee9fdab44e1395b8dee7d7a497d5" , "off"
411421 )
422+
412423 data = mock_smile_anna .async_update .return_value
413424 data .devices ["3cb70739631c4d17a86b8b12e8a5161b" ].pop ("available_schedules" )
414425 with patch (HA_PLUGWISE_SMILE_ASYNC_UPDATE , return_value = data ):
415- async_fire_time_changed (hass , utcnow () + timedelta (minutes = 1 ))
426+ freezer .tick (timedelta (minutes = 1 ))
427+ async_fire_time_changed (hass )
416428 await hass .async_block_till_done ()
429+
417430 state = hass .states .get ("climate.anna" )
418431 assert state .state == HVACMode .HEAT
419432 assert state .attributes ["hvac_modes" ] == [HVACMode .HEAT_COOL ]
0 commit comments