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:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user