69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
"""The tests for the humidifier component."""
|
|
from enum import Enum
|
|
from types import ModuleType
|
|
from unittest.mock import MagicMock
|
|
|
|
import pytest
|
|
|
|
from homeassistant.components import humidifier
|
|
from homeassistant.components.humidifier import HumidifierEntity
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from tests.common import import_and_test_deprecated_constant_enum
|
|
|
|
|
|
class MockHumidifierEntity(HumidifierEntity):
|
|
"""Mock Humidifier device to use in tests."""
|
|
|
|
@property
|
|
def supported_features(self) -> int:
|
|
"""Return the list of supported features."""
|
|
return 0
|
|
|
|
|
|
async def test_sync_turn_on(hass: HomeAssistant) -> None:
|
|
"""Test if async turn_on calls sync turn_on."""
|
|
humidifier = MockHumidifierEntity()
|
|
humidifier.hass = hass
|
|
|
|
humidifier.turn_on = MagicMock()
|
|
await humidifier.async_turn_on()
|
|
|
|
assert humidifier.turn_on.called
|
|
|
|
|
|
async def test_sync_turn_off(hass: HomeAssistant) -> None:
|
|
"""Test if async turn_off calls sync turn_off."""
|
|
humidifier = MockHumidifierEntity()
|
|
humidifier.hass = hass
|
|
|
|
humidifier.turn_off = MagicMock()
|
|
await humidifier.async_turn_off()
|
|
|
|
assert humidifier.turn_off.called
|
|
|
|
|
|
def _create_tuples(enum: Enum, constant_prefix: str) -> list[tuple[Enum, str]]:
|
|
result = []
|
|
for enum in enum:
|
|
result.append((enum, constant_prefix))
|
|
return result
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
("enum", "constant_prefix"),
|
|
_create_tuples(humidifier.HumidifierEntityFeature, "SUPPORT_")
|
|
+ _create_tuples(humidifier.HumidifierDeviceClass, "DEVICE_CLASS_"),
|
|
)
|
|
@pytest.mark.parametrize(("module"), [humidifier, humidifier.const])
|
|
def test_deprecated_constants(
|
|
caplog: pytest.LogCaptureFixture,
|
|
enum: Enum,
|
|
constant_prefix: str,
|
|
module: ModuleType,
|
|
) -> None:
|
|
"""Test deprecated constants."""
|
|
import_and_test_deprecated_constant_enum(
|
|
caplog, module, enum, constant_prefix, "2025.1"
|
|
)
|