1
0
mirror of https://github.com/home-assistant/core.git synced 2026-04-02 00:20:30 +01:00

Revert climate

This commit is contained in:
epenet
2026-04-01 12:52:32 +00:00
parent 668cdbdb8e
commit 2ce3cfea5a
2 changed files with 3 additions and 74 deletions

View File

@@ -5,7 +5,6 @@ from __future__ import annotations
from dataclasses import dataclass
from typing import Any, cast
from tuya_device_handlers import TUYA_QUIRKS_REGISTRY
from tuya_device_handlers.definition.climate import (
TuyaClimateDefinition,
get_default_definition,
@@ -62,8 +61,6 @@ _HA_TO_TUYA_TEMPERATURE = {
UnitOfTemperature.FAHRENHEIT: TuyaUnitOfTemperature.FAHRENHEIT,
}
_FALLBACK_SWITH_ONLY_HVAC_MODE = HVACMode.HEAT_COOL
@dataclass(frozen=True, kw_only=True)
class TuyaClimateEntityDescription(ClimateEntityDescription):
@@ -100,35 +97,6 @@ CLIMATE_DESCRIPTIONS: dict[DeviceCategory, TuyaClimateEntityDescription] = {
}
def _get_quirk_entities(
manager: Manager, device: CustomerDevice, temperature_unit: UnitOfTemperature
) -> list[TuyaClimateEntity] | None:
if (quirk := TUYA_QUIRKS_REGISTRY.get_quirk_for_device(device)) is None or (
entity_quirks := quirk.climate_quirks
) is None:
return None
return [
TuyaClimateEntity(
device,
manager,
TuyaClimateEntityDescription(
key=entity_quirk.key,
switch_only_hvac_mode=_FALLBACK_SWITH_ONLY_HVAC_MODE,
),
definition,
)
for entity_quirk in entity_quirks
if (
definition := entity_quirk.definition_fn(
device,
_HA_TO_TUYA_TEMPERATURE.get(
temperature_unit, TuyaUnitOfTemperature.CELSIUS
),
)
)
]
async def async_setup_entry(
hass: HomeAssistant,
entry: TuyaConfigEntry,
@@ -143,13 +111,6 @@ async def async_setup_entry(
entities: list[TuyaClimateEntity] = []
for device_id in device_ids:
device = manager.device_map[device_id]
if (
quirk_entities := _get_quirk_entities(
manager, device, hass.config.units.temperature_unit
)
) is not None:
entities.extend(quirk_entities)
continue
if (description := CLIMATE_DESCRIPTIONS.get(device.category)) and (
definition := get_default_definition(
device,

View File

@@ -3,12 +3,11 @@
from __future__ import annotations
from typing import Any
from unittest.mock import Mock, patch
from unittest.mock import patch
import pytest
from syrupy.assertion import SnapshotAssertion
from syrupy.filters import props
from tuya_device_handlers import TUYA_QUIRKS_REGISTRY
from tuya_sharing import CustomerDevice, Manager
from homeassistant.components.climate import (
@@ -44,13 +43,7 @@ from . import initialize_entry
from tests.common import MockConfigEntry, snapshot_platform
@pytest.fixture(autouse=True)
def platform_autouse():
"""Platform fixture."""
with patch("homeassistant.components.tuya.PLATFORMS", [Platform.CLIMATE]):
yield
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.CLIMATE])
async def test_platform_setup_and_discovery(
hass: HomeAssistant,
mock_manager: Manager,
@@ -65,32 +58,7 @@ async def test_platform_setup_and_discovery(
await snapshot_platform(hass, entity_registry, snapshot, mock_config_entry.entry_id)
@pytest.mark.parametrize("mock_device_code", ["kt_5wnlzekkstwcdsvm"])
@pytest.mark.parametrize(
("get_quirks", "available"),
[
(None, True),
([], False),
],
)
async def test_empty_quirk(
hass: HomeAssistant,
mock_manager: Manager,
mock_config_entry: MockConfigEntry,
mock_device: CustomerDevice,
get_quirks: list | None,
available: bool,
) -> None:
"""Test None quirk still creates default entities."""
with patch.object(TUYA_QUIRKS_REGISTRY, "get_quirk_for_device") as mock_get_quirk:
mock_get_quirk.return_value = Mock()
mock_get_quirk.return_value.climate_quirks = get_quirks
await initialize_entry(hass, mock_manager, mock_config_entry, mock_device)
state = hass.states.get("climate.air_conditioner")
assert (state is not None) is available
@patch("homeassistant.components.tuya.PLATFORMS", [Platform.CLIMATE])
async def test_us_customary_system(
hass: HomeAssistant,
mock_manager: Manager,