mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 16:57:53 +00:00
Use climate enums in freedompro (#70651)
* Use climate enums in freedompro * Adjust tests * Adjust type hints
This commit is contained in:
parent
2efc25c7ca
commit
0fd2a7dc83
@ -1,15 +1,16 @@
|
||||
"""Support for Freedompro climate."""
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import logging
|
||||
|
||||
from pyfreedompro import put_state
|
||||
|
||||
from homeassistant.components.climate import ClimateEntity, ClimateEntityFeature
|
||||
from homeassistant.components.climate import ClimateEntity
|
||||
from homeassistant.components.climate.const import (
|
||||
ATTR_HVAC_MODE,
|
||||
HVAC_MODE_COOL,
|
||||
HVAC_MODE_HEAT,
|
||||
HVAC_MODE_OFF,
|
||||
ClimateEntityFeature,
|
||||
HVACMode,
|
||||
)
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import ATTR_TEMPERATURE, CONF_API_KEY, TEMP_CELSIUS
|
||||
@ -24,14 +25,18 @@ from .const import DOMAIN
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
||||
HVAC_MAP = {
|
||||
0: HVAC_MODE_OFF,
|
||||
1: HVAC_MODE_HEAT,
|
||||
2: HVAC_MODE_COOL,
|
||||
0: HVACMode.OFF,
|
||||
1: HVACMode.HEAT,
|
||||
2: HVACMode.COOL,
|
||||
}
|
||||
|
||||
HVAC_INVERT_MAP = {v: k for k, v in HVAC_MAP.items()}
|
||||
|
||||
SUPPORTED_HVAC_MODES = [HVAC_MODE_OFF, HVAC_MODE_HEAT, HVAC_MODE_COOL]
|
||||
SUPPORTED_HVAC_MODES = [
|
||||
HVACMode.OFF,
|
||||
HVACMode.HEAT,
|
||||
HVACMode.COOL,
|
||||
]
|
||||
|
||||
|
||||
async def async_setup_entry(
|
||||
@ -74,7 +79,7 @@ class Device(CoordinatorEntity, ClimateEntity):
|
||||
self._attr_supported_features = ClimateEntityFeature.TARGET_TEMPERATURE
|
||||
self._attr_current_temperature = 0
|
||||
self._attr_target_temperature = 0
|
||||
self._attr_hvac_mode = HVAC_MODE_OFF
|
||||
self._attr_hvac_mode = HVACMode.OFF
|
||||
|
||||
@callback
|
||||
def _handle_coordinator_update(self) -> None:
|
||||
|
@ -1,5 +1,4 @@
|
||||
"""Tests for the Freedompro climate."""
|
||||
|
||||
from datetime import timedelta
|
||||
from unittest.mock import ANY, patch
|
||||
|
||||
@ -13,13 +12,10 @@ from homeassistant.components.climate import (
|
||||
ATTR_MIN_TEMP,
|
||||
ATTR_TEMPERATURE,
|
||||
DOMAIN as CLIMATE_DOMAIN,
|
||||
HVAC_MODE_COOL,
|
||||
HVAC_MODE_HEAT,
|
||||
HVAC_MODE_OFF,
|
||||
SERVICE_SET_HVAC_MODE,
|
||||
SERVICE_SET_TEMPERATURE,
|
||||
)
|
||||
from homeassistant.components.climate.const import HVAC_MODE_AUTO
|
||||
from homeassistant.components.climate.const import HVACMode
|
||||
from homeassistant.const import ATTR_ENTITY_ID
|
||||
from homeassistant.helpers import device_registry as dr, entity_registry as er
|
||||
from homeassistant.util.dt import utcnow
|
||||
@ -48,9 +44,9 @@ async def test_climate_get_state(hass, init_integration):
|
||||
assert state.attributes.get("friendly_name") == "thermostat"
|
||||
|
||||
assert state.attributes[ATTR_HVAC_MODES] == [
|
||||
HVAC_MODE_OFF,
|
||||
HVAC_MODE_HEAT,
|
||||
HVAC_MODE_COOL,
|
||||
HVACMode.OFF,
|
||||
HVACMode.HEAT,
|
||||
HVACMode.COOL,
|
||||
]
|
||||
|
||||
assert state.attributes[ATTR_MIN_TEMP] == 7
|
||||
@ -58,7 +54,7 @@ async def test_climate_get_state(hass, init_integration):
|
||||
assert state.attributes[ATTR_TEMPERATURE] == 14
|
||||
assert state.attributes[ATTR_CURRENT_TEMPERATURE] == 14
|
||||
|
||||
assert state.state == HVAC_MODE_HEAT
|
||||
assert state.state == HVACMode.HEAT
|
||||
|
||||
entry = entity_registry.async_get(entity_id)
|
||||
assert entry
|
||||
@ -106,14 +102,14 @@ async def test_climate_set_off(hass, init_integration):
|
||||
assert 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,
|
||||
)
|
||||
mock_put_state.assert_called_once_with(ANY, ANY, ANY, '{"heatingCoolingState": 0}')
|
||||
|
||||
await hass.async_block_till_done()
|
||||
state = hass.states.get(entity_id)
|
||||
assert state.state == HVAC_MODE_HEAT
|
||||
assert state.state == HVACMode.HEAT
|
||||
|
||||
|
||||
async def test_climate_set_unsupported_hvac_mode(hass, init_integration):
|
||||
@ -134,7 +130,7 @@ async def test_climate_set_unsupported_hvac_mode(hass, init_integration):
|
||||
await hass.services.async_call(
|
||||
CLIMATE_DOMAIN,
|
||||
SERVICE_SET_HVAC_MODE,
|
||||
{ATTR_ENTITY_ID: [entity_id], ATTR_HVAC_MODE: HVAC_MODE_AUTO},
|
||||
{ATTR_ENTITY_ID: [entity_id], ATTR_HVAC_MODE: HVACMode.AUTO},
|
||||
blocking=True,
|
||||
)
|
||||
|
||||
@ -161,7 +157,7 @@ async def test_climate_set_temperature(hass, init_integration):
|
||||
SERVICE_SET_TEMPERATURE,
|
||||
{
|
||||
ATTR_ENTITY_ID: [entity_id],
|
||||
ATTR_HVAC_MODE: HVAC_MODE_OFF,
|
||||
ATTR_HVAC_MODE: HVACMode.OFF,
|
||||
ATTR_TEMPERATURE: 25,
|
||||
},
|
||||
blocking=True,
|
||||
@ -203,7 +199,7 @@ async def test_climate_set_temperature_unsupported_hvac_mode(hass, init_integrat
|
||||
SERVICE_SET_TEMPERATURE,
|
||||
{
|
||||
ATTR_ENTITY_ID: [entity_id],
|
||||
ATTR_HVAC_MODE: HVAC_MODE_AUTO,
|
||||
ATTR_HVAC_MODE: HVACMode.AUTO,
|
||||
ATTR_TEMPERATURE: 25,
|
||||
},
|
||||
blocking=True,
|
||||
|
Loading…
x
Reference in New Issue
Block a user