Skip to content

Commit

Permalink
update tests to use enum
Browse files Browse the repository at this point in the history
  • Loading branch information
PeteRager committed Apr 17, 2024
1 parent 2209271 commit e60cbc6
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 53 deletions.
1 change: 0 additions & 1 deletion tests/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
from unittest.mock import patch

import pytest
import pytest_socket

from lennoxs30api.s30api_async import (
lennox_system,
Expand Down
92 changes: 40 additions & 52 deletions tests/test_climate.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,26 +12,14 @@
from homeassistant.components.climate.const import (
PRESET_AWAY,
PRESET_NONE,
HVACAction,
HVACMode,
)
from homeassistant.exceptions import HomeAssistantError
from homeassistant.components.climate.const import (
CURRENT_HVAC_DRY,
CURRENT_HVAC_IDLE,
HVAC_MODE_COOL,
HVAC_MODE_HEAT,
HVAC_MODE_HEAT_COOL,
HVAC_MODE_OFF,
SUPPORT_AUX_HEAT,
SUPPORT_FAN_MODE,
SUPPORT_PRESET_MODE,
SUPPORT_TARGET_HUMIDITY,
SUPPORT_TARGET_TEMPERATURE,
SUPPORT_TARGET_TEMPERATURE_RANGE,
)
from homeassistant.const import (
UnitOfTemperature
)

from homeassistant.components.climate import ClimateEntityFeature

from lennoxs30api.s30api_async import (
LENNOX_HVAC_COOL,
Expand Down Expand Up @@ -719,61 +707,61 @@ async def test_climate_supported_features(hass, manager_mz: Manager):
c = S30Climate(hass, manager, system, zone)
feat = c.supported_features
assert c.is_single_setpoint_active() is True
assert feat & SUPPORT_TARGET_TEMPERATURE != 0
assert feat & SUPPORT_TARGET_TEMPERATURE_RANGE == 0
assert feat & ClimateEntityFeature.TARGET_TEMPERATURE != 0
assert feat & ClimateEntityFeature.TARGET_TEMPERATURE_RANGE == 0

c._zone.system.single_setpoint_mode = False
c._zone.systemMode = LENNOX_HVAC_HEAT_COOL
feat = c.supported_features
assert c.is_single_setpoint_active() is False
assert feat & SUPPORT_TARGET_TEMPERATURE == 0
assert feat & SUPPORT_TARGET_TEMPERATURE_RANGE != 0
assert feat & ClimateEntityFeature.TARGET_TEMPERATURE == 0
assert feat & ClimateEntityFeature.TARGET_TEMPERATURE_RANGE != 0

feat = c.supported_features
assert c._zone.dehumidificationOption is True
assert c._zone.humidificationOption is False
assert c._zone.humidityMode == LENNOX_HUMIDITY_MODE_OFF
assert feat & SUPPORT_TARGET_HUMIDITY == 0
assert feat & ClimateEntityFeature.TARGET_HUMIDITY == 0

c._zone.humidityMode = LENNOX_HUMIDITY_MODE_DEHUMIDIFY
feat = c.supported_features
assert feat & SUPPORT_TARGET_HUMIDITY != 0
assert feat & ClimateEntityFeature.TARGET_HUMIDITY != 0

c._zone.dehumidificationOption = False
c._zone.humidificationOption = True
c._zone.humidityMode = LENNOX_HUMIDITY_MODE_OFF
feat = c.supported_features
assert feat & SUPPORT_TARGET_HUMIDITY == 0
assert feat & ClimateEntityFeature.TARGET_HUMIDITY == 0

c._zone.humidityMode = LENNOX_HUMIDITY_MODE_HUMIDIFY
feat = c.supported_features
assert feat & SUPPORT_TARGET_HUMIDITY != 0
assert feat & ClimateEntityFeature.TARGET_HUMIDITY != 0

c._zone.humidificationOption = False
feat = c.supported_features
assert feat & SUPPORT_TARGET_HUMIDITY == 0
assert feat & ClimateEntityFeature.TARGET_HUMIDITY == 0

assert feat & SUPPORT_AUX_HEAT == 0
assert feat & SUPPORT_PRESET_MODE != 0
assert feat & SUPPORT_FAN_MODE != 0
assert feat & ClimateEntityFeature.AUX_HEAT == 0
assert feat & ClimateEntityFeature.PRESET_MODE != 0
assert feat & ClimateEntityFeature.FAN_MODE != 0

c._zone.emergencyHeatingOption = False
with patch.object(system, "has_emergency_heat") as has_emergency_heat:
has_emergency_heat.return_value = True
feat = c.supported_features
assert feat & SUPPORT_AUX_HEAT != 0
assert feat & ClimateEntityFeature.AUX_HEAT != 0

c._zone.emergencyHeatingOption = True
with patch.object(system, "has_emergency_heat") as has_emergency_heat:
has_emergency_heat.return_value = False
feat = c.supported_features
assert feat & SUPPORT_AUX_HEAT != 0
assert feat & ClimateEntityFeature.AUX_HEAT != 0

c._zone.emergencyHeatingOption = False
with patch.object(system, "has_emergency_heat") as has_emergency_heat:
has_emergency_heat.return_value = False
feat = c.supported_features
assert feat & SUPPORT_AUX_HEAT == 0
assert feat & ClimateEntityFeature.AUX_HEAT == 0

zone1: lennox_zone = system.zone_list[1]
c1 = S30Climate(hass, manager, system, zone1)
Expand Down Expand Up @@ -1018,17 +1006,17 @@ async def test_climate_hvac_mode(hass, manager_mz: Manager):
zone1: lennox_zone = system.zone_list[1]
c1 = S30Climate(hass, manager, system, zone1)

assert c.hvac_mode == HVAC_MODE_HEAT
assert c1.hvac_mode == HVAC_MODE_COOL
assert c.hvac_mode == HVACMode.HEAT
assert c1.hvac_mode == HVACMode.COOL

zone.systemMode = LENNOX_HVAC_HEAT_COOL
assert c.hvac_mode == HVAC_MODE_HEAT_COOL
assert c.hvac_mode == HVACMode.HEAT_COOL

zone.systemMode = LENNOX_HVAC_EMERGENCY_HEAT
assert c.hvac_mode == HVAC_MODE_HEAT
assert c.hvac_mode == HVACMode.HEAT

system.zoningMode = LENNOX_ZONING_MODE_CENTRAL
assert c.hvac_mode == HVAC_MODE_HEAT
assert c.hvac_mode == HVACMode.HEAT
assert c1.hvac_mode is None


Expand All @@ -1055,21 +1043,21 @@ async def test_climate_hvac_modes(hass, manager_mz: Manager):

modes = c.hvac_modes
assert len(modes) == 4
assert HVAC_MODE_OFF in modes
assert HVAC_MODE_HEAT in modes
assert HVAC_MODE_COOL in modes
assert HVAC_MODE_HEAT_COOL in modes
assert HVACMode.OFF in modes
assert HVACMode.HEAT in modes
assert HVACMode.COOL in modes
assert HVACMode.HEAT_COOL in modes

zone.coolingOption = False
modes = c.hvac_modes
assert len(modes) == 2
assert HVAC_MODE_OFF in modes
assert HVAC_MODE_HEAT in modes
assert HVACMode.OFF in modes
assert HVACMode.HEAT in modes

zone.heatingOption = False
modes = c.hvac_modes
assert len(modes) == 1
assert HVAC_MODE_OFF in modes
assert HVACMode.OFF in modes

system.zoningMode = LENNOX_ZONING_MODE_CENTRAL
modes = c.hvac_modes
Expand All @@ -1087,40 +1075,40 @@ async def test_climate_set_hvac_mode(hass, manager_mz: Manager, caplog):
with caplog.at_level(logging.ERROR):
with patch.object(zone, "setHVACMode") as setHVACMode:
caplog.clear()
await c.async_set_hvac_mode(HVAC_MODE_HEAT)
await c.async_set_hvac_mode(HVACMode.HEAT)
assert setHVACMode.call_count == 1
assert setHVACMode.await_args[0][0] == LENNOX_HVAC_HEAT

with caplog.at_level(logging.ERROR):
with patch.object(zone, "setHVACMode") as setHVACMode:
caplog.clear()
await c.async_set_hvac_mode(HVAC_MODE_COOL)
await c.async_set_hvac_mode(HVACMode.COOL)
assert setHVACMode.call_count == 1
assert setHVACMode.await_args[0][0] == LENNOX_HVAC_COOL

with caplog.at_level(logging.ERROR):
with patch.object(zone, "setHVACMode") as setHVACMode:
caplog.clear()
await c.async_set_hvac_mode(HVAC_MODE_HEAT_COOL)
await c.async_set_hvac_mode(HVACMode.HEAT_COOL)
assert setHVACMode.call_count == 1
assert setHVACMode.await_args[0][0] == LENNOX_HVAC_HEAT_COOL

with caplog.at_level(logging.ERROR):
with patch.object(zone, "setHVACMode") as setHVACMode:
caplog.clear()
await c.async_set_hvac_mode(HVAC_MODE_OFF)
await c.async_set_hvac_mode(HVACMode.OFF)
assert setHVACMode.call_count == 1
assert setHVACMode.await_args[0][0] == LENNOX_HVAC_OFF

await conf_test_exception_handling(zone, "setHVACMode", c, c.async_set_hvac_mode, hvac_mode=HVAC_MODE_HEAT_COOL)
await conf_test_exception_handling(zone, "setHVACMode", c, c.async_set_hvac_mode, hvac_mode=HVACMode.HEAT_COOL)

system.zoningMode = LENNOX_ZONING_MODE_CENTRAL
with caplog.at_level(logging.ERROR):
with patch.object(zone, "setHVACMode") as setHVACMode:
caplog.clear()
ex: HomeAssistantError = None
try:
await c.async_set_hvac_mode(HVAC_MODE_OFF)
await c.async_set_hvac_mode(HVACMode.OFF)
except HomeAssistantError as err:
ex = err
assert setHVACMode.call_count == 0
Expand All @@ -1144,7 +1132,7 @@ async def test_climate_hvac_action(hass, manager_mz: Manager):
zone.systemMode = LENNOX_HVAC_COOL
zone.tempOperation = LENNOX_TEMP_OPERATION_OFF
zone.humOperation = LENNOX_HUMID_OPERATION_OFF
assert c.hvac_action == CURRENT_HVAC_IDLE
assert c.hvac_action == HVACAction.IDLE

zone.systemMode = LENNOX_HVAC_COOL
zone.tempOperation = LENNOX_TEMP_OPERATION_COOLING
Expand All @@ -1154,12 +1142,12 @@ async def test_climate_hvac_action(hass, manager_mz: Manager):
zone.systemMode = LENNOX_HVAC_COOL
zone.tempOperation = LENNOX_TEMP_OPERATION_OFF
zone.humOperation = LENNOX_HUMID_OPERATION_DEHUMID
assert c.hvac_action == CURRENT_HVAC_DRY
assert c.hvac_action == HVACAction.DRYING

zone.systemMode = LENNOX_HVAC_COOL
zone.tempOperation = LENNOX_TEMP_OPERATION_OFF
zone.humOperation = LENNOX_HUMID_OPERATION_WAITING
assert c.hvac_action == CURRENT_HVAC_IDLE
assert c.hvac_action == HVACAction.IDLE

zone.tempOperation = LENNOX_TEMP_OPERATION_OFF
zone.humOperation = "unexpected_humdity_operation"
Expand Down Expand Up @@ -1527,7 +1515,7 @@ async def test_climate_set_temperature(hass, manager_mz: Manager, caplog):
except HomeAssistantError as err:
ex = err
assert ex is not None
assert "System Mode is [off]" in str(ex)
assert "System Mode is [off]" in str(ex)
system.single_setpoint_mode = False

zone.systemMode = "cool"
Expand Down

0 comments on commit e60cbc6

Please sign in to comment.