From 1bc9744be399e4c4d9eab2963ce458fc4be98204 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Tue, 26 Apr 2022 09:21:17 +0200 Subject: [PATCH] Use climate enums in advantage_air (#70621) --- .../components/advantage_air/climate.py | 45 +++++++++---------- .../components/advantage_air/test_climate.py | 16 +++---- 2 files changed, 27 insertions(+), 34 deletions(-) diff --git a/homeassistant/components/advantage_air/climate.py b/homeassistant/components/advantage_air/climate.py index 16dc531beab..192e1987902 100644 --- a/homeassistant/components/advantage_air/climate.py +++ b/homeassistant/components/advantage_air/climate.py @@ -3,19 +3,14 @@ from __future__ import annotations import logging -from homeassistant.components.climate import ClimateEntity, ClimateEntityFeature +from homeassistant.components.climate import ClimateEntity from homeassistant.components.climate.const import ( FAN_AUTO, FAN_HIGH, FAN_LOW, FAN_MEDIUM, - HVAC_MODE_AUTO, - HVAC_MODE_COOL, - HVAC_MODE_DRY, - HVAC_MODE_FAN_ONLY, - HVAC_MODE_HEAT, - HVAC_MODE_HEAT_COOL, - HVAC_MODE_OFF, + ClimateEntityFeature, + HVACMode, ) from homeassistant.config_entries import ConfigEntry from homeassistant.const import ATTR_TEMPERATURE, PRECISION_WHOLE, TEMP_CELSIUS @@ -33,20 +28,20 @@ from .const import ( from .entity import AdvantageAirEntity ADVANTAGE_AIR_HVAC_MODES = { - "heat": HVAC_MODE_HEAT, - "cool": HVAC_MODE_COOL, - "vent": HVAC_MODE_FAN_ONLY, - "dry": HVAC_MODE_DRY, - "myauto": HVAC_MODE_AUTO, + "heat": HVACMode.HEAT, + "cool": HVACMode.COOL, + "vent": HVACMode.FAN_ONLY, + "dry": HVACMode.DRY, + "myauto": HVACMode.AUTO, } HASS_HVAC_MODES = {v: k for k, v in ADVANTAGE_AIR_HVAC_MODES.items()} AC_HVAC_MODES = [ - HVAC_MODE_OFF, - HVAC_MODE_COOL, - HVAC_MODE_HEAT, - HVAC_MODE_FAN_ONLY, - HVAC_MODE_DRY, + HVACMode.OFF, + HVACMode.COOL, + HVACMode.HEAT, + HVACMode.FAN_ONLY, + HVACMode.DRY, ] ADVANTAGE_AIR_FAN_MODES = { @@ -59,7 +54,7 @@ HASS_FAN_MODES = {v: k for k, v in ADVANTAGE_AIR_FAN_MODES.items()} FAN_SPEEDS = {FAN_LOW: 30, FAN_MEDIUM: 60, FAN_HIGH: 100} ADVANTAGE_AIR_SERVICE_SET_MYZONE = "set_myzone" -ZONE_HVAC_MODES = [HVAC_MODE_OFF, HVAC_MODE_HEAT_COOL] +ZONE_HVAC_MODES = [HVACMode.OFF, HVACMode.HEAT_COOL] PARALLEL_UPDATES = 0 @@ -116,7 +111,7 @@ class AdvantageAirAC(AdvantageAirClimateEntity): self._attr_name = self._ac["name"] self._attr_unique_id = f'{self.coordinator.data["system"]["rid"]}-{ac_key}' if self._ac.get("myAutoModeEnabled"): - self._attr_hvac_modes = AC_HVAC_MODES + [HVAC_MODE_AUTO] + self._attr_hvac_modes = AC_HVAC_MODES + [HVACMode.AUTO] @property def target_temperature(self): @@ -128,7 +123,7 @@ class AdvantageAirAC(AdvantageAirClimateEntity): """Return the current HVAC modes.""" if self._ac["state"] == ADVANTAGE_AIR_STATE_ON: return ADVANTAGE_AIR_HVAC_MODES.get(self._ac["mode"]) - return HVAC_MODE_OFF + return HVACMode.OFF @property def fan_mode(self): @@ -137,7 +132,7 @@ class AdvantageAirAC(AdvantageAirClimateEntity): async def async_set_hvac_mode(self, hvac_mode): """Set the HVAC Mode and State.""" - if hvac_mode == HVAC_MODE_OFF: + if hvac_mode == HVACMode.OFF: await self.async_change( {self.ac_key: {"info": {"state": ADVANTAGE_AIR_STATE_OFF}}} ) @@ -183,8 +178,8 @@ class AdvantageAirZone(AdvantageAirClimateEntity): def hvac_mode(self): """Return the current state as HVAC mode.""" if self._zone["state"] == ADVANTAGE_AIR_STATE_OPEN: - return HVAC_MODE_HEAT_COOL - return HVAC_MODE_OFF + return HVACMode.HEAT_COOL + return HVACMode.OFF @property def current_temperature(self): @@ -198,7 +193,7 @@ class AdvantageAirZone(AdvantageAirClimateEntity): async def async_set_hvac_mode(self, hvac_mode): """Set the HVAC Mode and State.""" - if hvac_mode == HVAC_MODE_OFF: + if hvac_mode == HVACMode.OFF: await self.async_change( { self.ac_key: { diff --git a/tests/components/advantage_air/test_climate.py b/tests/components/advantage_air/test_climate.py index 4374057bbb2..4d075a36151 100644 --- a/tests/components/advantage_air/test_climate.py +++ b/tests/components/advantage_air/test_climate.py @@ -1,5 +1,4 @@ """Test the Advantage Air Climate Platform.""" - from json import loads from homeassistant.components.advantage_air.climate import ( @@ -17,11 +16,10 @@ from homeassistant.components.climate.const import ( ATTR_HVAC_MODE, DOMAIN as CLIMATE_DOMAIN, FAN_LOW, - HVAC_MODE_FAN_ONLY, - HVAC_MODE_OFF, SERVICE_SET_FAN_MODE, SERVICE_SET_HVAC_MODE, SERVICE_SET_TEMPERATURE, + HVACMode, ) from homeassistant.const import ATTR_ENTITY_ID, ATTR_TEMPERATURE from homeassistant.helpers import entity_registry as er @@ -56,7 +54,7 @@ async def test_climate_async_setup_entry(hass, aioclient_mock): entity_id = "climate.ac_one" state = hass.states.get(entity_id) assert state - assert state.state == HVAC_MODE_FAN_ONLY + assert state.state == HVACMode.FAN_ONLY assert state.attributes.get("min_temp") == 16 assert state.attributes.get("max_temp") == 32 assert state.attributes.get("temperature") == 24 @@ -69,7 +67,7 @@ async def test_climate_async_setup_entry(hass, aioclient_mock): await hass.services.async_call( CLIMATE_DOMAIN, SERVICE_SET_HVAC_MODE, - {ATTR_ENTITY_ID: [entity_id], ATTR_HVAC_MODE: HVAC_MODE_FAN_ONLY}, + {ATTR_ENTITY_ID: [entity_id], ATTR_HVAC_MODE: HVACMode.FAN_ONLY}, blocking=True, ) assert len(aioclient_mock.mock_calls) == 3 @@ -77,14 +75,14 @@ async def test_climate_async_setup_entry(hass, aioclient_mock): assert aioclient_mock.mock_calls[-2][1].path == "/setAircon" data = loads(aioclient_mock.mock_calls[-2][1].query["json"]) assert data["ac1"]["info"]["state"] == ADVANTAGE_AIR_STATE_ON - assert data["ac1"]["info"]["mode"] == HASS_HVAC_MODES[HVAC_MODE_FAN_ONLY] + assert data["ac1"]["info"]["mode"] == HASS_HVAC_MODES[HVACMode.FAN_ONLY] assert aioclient_mock.mock_calls[-1][0] == "GET" assert aioclient_mock.mock_calls[-1][1].path == "/getSystemData" await hass.services.async_call( CLIMATE_DOMAIN, SERVICE_SET_HVAC_MODE, - {ATTR_ENTITY_ID: [entity_id], ATTR_HVAC_MODE: HVAC_MODE_OFF}, + {ATTR_ENTITY_ID: [entity_id], ATTR_HVAC_MODE: HVACMode.OFF}, blocking=True, ) assert len(aioclient_mock.mock_calls) == 5 @@ -139,7 +137,7 @@ async def test_climate_async_setup_entry(hass, aioclient_mock): await hass.services.async_call( CLIMATE_DOMAIN, SERVICE_SET_HVAC_MODE, - {ATTR_ENTITY_ID: [entity_id], ATTR_HVAC_MODE: HVAC_MODE_FAN_ONLY}, + {ATTR_ENTITY_ID: [entity_id], ATTR_HVAC_MODE: HVACMode.FAN_ONLY}, blocking=True, ) assert len(aioclient_mock.mock_calls) == 11 @@ -151,7 +149,7 @@ async def test_climate_async_setup_entry(hass, aioclient_mock): await hass.services.async_call( CLIMATE_DOMAIN, SERVICE_SET_HVAC_MODE, - {ATTR_ENTITY_ID: [entity_id], ATTR_HVAC_MODE: HVAC_MODE_OFF}, + {ATTR_ENTITY_ID: [entity_id], ATTR_HVAC_MODE: HVACMode.OFF}, blocking=True, ) assert len(aioclient_mock.mock_calls) == 13