55import pytest
66
77from vallox_websocket_api import (
8+ CellState ,
89 DefrostMode ,
910 Profile ,
1011 SupplyHeatingAdjustMode ,
@@ -185,7 +186,6 @@ async def test_set_defrost_mode_with_invalid_mode(vallox):
185186 "A_CYC_RH_BASIC_LEVEL" : 58 ,
186187 "A_CYC_CO2_THRESHOLD" : 800 ,
187188 "A_CYC_SUPPLY_HEATING_ADJUST_MODE" : 0 ,
188- "A_CYC_DEFROST_MODE" : 0 ,
189189 },
190190 {
191191 "A_CYC_HOME_RH_CTRL_ENABLED" : 0 ,
@@ -198,7 +198,6 @@ async def test_set_defrost_mode_with_invalid_mode(vallox):
198198 "A_CYC_RH_BASIC_LEVEL" : 50 ,
199199 "A_CYC_CO2_THRESHOLD" : 750 ,
200200 "A_CYC_SUPPLY_HEATING_ADJUST_MODE" : 1 ,
201- "A_CYC_DEFROST_MODE" : 1 ,
202201 },
203202 {
204203 "A_CYC_HOME_RH_CTRL_ENABLED" : 0 ,
@@ -211,7 +210,6 @@ async def test_set_defrost_mode_with_invalid_mode(vallox):
211210 "A_CYC_RH_BASIC_LEVEL" : 60 ,
212211 "A_CYC_CO2_THRESHOLD" : 850 ,
213212 "A_CYC_SUPPLY_HEATING_ADJUST_MODE" : 2 ,
214- "A_CYC_DEFROST_MODE" : 1 ,
215213 },
216214 {
217215 "A_CYC_HOME_RH_CTRL_ENABLED" : 1 ,
@@ -224,7 +222,6 @@ async def test_set_defrost_mode_with_invalid_mode(vallox):
224222 "A_CYC_RH_BASIC_LEVEL" : 55 ,
225223 "A_CYC_CO2_THRESHOLD" : 900 ,
226224 "A_CYC_SUPPLY_HEATING_ADJUST_MODE" : 0 ,
227- "A_CYC_DEFROST_MODE" : 0 ,
228225 },
229226 ],
230227)
@@ -286,14 +283,6 @@ async def test_get_sensor_controls_and_modes(vallox, metrics_response):
286283 ).name
287284 )
288285
289- # Test defrost mode
290- assert isinstance (data .defrost_mode , DefrostMode )
291- assert data .defrost_mode == DefrostMode (metrics_response ["A_CYC_DEFROST_MODE" ])
292- assert (
293- data .defrost_mode .name
294- == DefrostMode (metrics_response ["A_CYC_DEFROST_MODE" ]).name
295- )
296-
297286 # Test valid profiles without specific RH and CO2 sensor control metrics
298287 with pytest .raises (ValloxInvalidInputException ):
299288 data .get_rh_sensor_control (Profile .FIREPLACE )
@@ -305,3 +294,51 @@ async def test_get_sensor_controls_and_modes(vallox, metrics_response):
305294 data .get_co2_sensor_control (Profile .EXTRA )
306295
307296 vallox .fetch_metrics .assert_called_once ()
297+
298+
299+ @pytest .mark .parametrize (
300+ "defrost_mode_value, expected_defrost_mode" ,
301+ [
302+ (0 , DefrostMode .BYPASS ),
303+ (1 , DefrostMode .FAN_STOP ),
304+ ],
305+ )
306+ @pytest .mark .asyncio
307+ async def test_get_defrost_mode (vallox , defrost_mode_value , expected_defrost_mode ):
308+ """Test getting defrost mode."""
309+ # Mock the metrics response
310+ metrics_response = {"A_CYC_DEFROST_MODE" : defrost_mode_value }
311+ vallox .fetch_metrics = mock .AsyncMock (return_value = metrics_response )
312+
313+ data = await vallox .fetch_metric_data ()
314+
315+ # Test defrost mode
316+ assert isinstance (data .defrost_mode , DefrostMode )
317+ assert data .defrost_mode == expected_defrost_mode
318+
319+ vallox .fetch_metrics .assert_called_once ()
320+
321+
322+ @pytest .mark .parametrize (
323+ "cell_state_value, expected_cell_state" ,
324+ [
325+ (0 , CellState .HEAT_RECOVERY ),
326+ (1 , CellState .COOL_RECOVERY ),
327+ (2 , CellState .BYPASS ),
328+ (3 , CellState .DEFROST ),
329+ ],
330+ )
331+ @pytest .mark .asyncio
332+ async def test_get_cell_state (vallox , cell_state_value , expected_cell_state ):
333+ """Test getting cell state."""
334+ # Mock the metrics response
335+ metrics_response = {"A_CYC_CELL_STATE" : cell_state_value }
336+ vallox .fetch_metrics = mock .AsyncMock (return_value = metrics_response )
337+
338+ data = await vallox .fetch_metric_data ()
339+
340+ # Test cell state
341+ assert isinstance (data .cell_state , CellState )
342+ assert data .cell_state == expected_cell_state
343+
344+ vallox .fetch_metrics .assert_called_once ()
0 commit comments