mirror of
https://github.com/home-assistant/core.git
synced 2025-04-23 16:57:53 +00:00
Start deprecation vacuum constants for feature flags (#126354)
This commit is contained in:
parent
283033f902
commit
ef88425d25
@ -23,6 +23,12 @@ from homeassistant.const import ( # noqa: F401 # STATE_PAUSED/IDLE are API
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import config_validation as cv
|
||||
from homeassistant.helpers.deprecation import (
|
||||
DeprecatedConstantEnum,
|
||||
all_with_deprecated_constants,
|
||||
check_if_deprecated_constant,
|
||||
dir_with_deprecated_constants,
|
||||
)
|
||||
from homeassistant.helpers.entity import Entity, EntityDescription
|
||||
from homeassistant.helpers.entity_component import EntityComponent
|
||||
from homeassistant.helpers.icon import icon_for_battery_level
|
||||
@ -84,20 +90,38 @@ class VacuumEntityFeature(IntFlag):
|
||||
|
||||
# These SUPPORT_* constants are deprecated as of Home Assistant 2022.5.
|
||||
# Please use the VacuumEntityFeature enum instead.
|
||||
SUPPORT_TURN_ON = 1
|
||||
SUPPORT_TURN_OFF = 2
|
||||
SUPPORT_PAUSE = 4
|
||||
SUPPORT_STOP = 8
|
||||
SUPPORT_RETURN_HOME = 16
|
||||
SUPPORT_FAN_SPEED = 32
|
||||
SUPPORT_BATTERY = 64
|
||||
SUPPORT_STATUS = 128
|
||||
SUPPORT_SEND_COMMAND = 256
|
||||
SUPPORT_LOCATE = 512
|
||||
SUPPORT_CLEAN_SPOT = 1024
|
||||
SUPPORT_MAP = 2048
|
||||
SUPPORT_STATE = 4096
|
||||
SUPPORT_START = 8192
|
||||
_DEPRECATED_SUPPORT_TURN_ON = DeprecatedConstantEnum(
|
||||
VacuumEntityFeature.TURN_ON, "2025.10"
|
||||
)
|
||||
_DEPRECATED_SUPPORT_TURN_OFF = DeprecatedConstantEnum(
|
||||
VacuumEntityFeature.TURN_OFF, "2025.10"
|
||||
)
|
||||
_DEPRECATED_SUPPORT_PAUSE = DeprecatedConstantEnum(VacuumEntityFeature.PAUSE, "2025.10")
|
||||
_DEPRECATED_SUPPORT_STOP = DeprecatedConstantEnum(VacuumEntityFeature.STOP, "2025.10")
|
||||
_DEPRECATED_SUPPORT_RETURN_HOME = DeprecatedConstantEnum(
|
||||
VacuumEntityFeature.RETURN_HOME, "2025.10"
|
||||
)
|
||||
_DEPRECATED_SUPPORT_FAN_SPEED = DeprecatedConstantEnum(
|
||||
VacuumEntityFeature.FAN_SPEED, "2025.10"
|
||||
)
|
||||
_DEPRECATED_SUPPORT_BATTERY = DeprecatedConstantEnum(
|
||||
VacuumEntityFeature.BATTERY, "2025.10"
|
||||
)
|
||||
_DEPRECATED_SUPPORT_STATUS = DeprecatedConstantEnum(
|
||||
VacuumEntityFeature.STATUS, "2025.10"
|
||||
)
|
||||
_DEPRECATED_SUPPORT_SEND_COMMAND = DeprecatedConstantEnum(
|
||||
VacuumEntityFeature.SEND_COMMAND, "2025.10"
|
||||
)
|
||||
_DEPRECATED_SUPPORT_LOCATE = DeprecatedConstantEnum(
|
||||
VacuumEntityFeature.LOCATE, "2025.10"
|
||||
)
|
||||
_DEPRECATED_SUPPORT_CLEAN_SPOT = DeprecatedConstantEnum(
|
||||
VacuumEntityFeature.CLEAN_SPOT, "2025.10"
|
||||
)
|
||||
_DEPRECATED_SUPPORT_MAP = DeprecatedConstantEnum(VacuumEntityFeature.MAP, "2025.10")
|
||||
_DEPRECATED_SUPPORT_STATE = DeprecatedConstantEnum(VacuumEntityFeature.STATE, "2025.10")
|
||||
_DEPRECATED_SUPPORT_START = DeprecatedConstantEnum(VacuumEntityFeature.START, "2025.10")
|
||||
|
||||
# mypy: disallow-any-generics
|
||||
|
||||
@ -381,3 +405,13 @@ class StateVacuumEntity(
|
||||
This method must be run in the event loop.
|
||||
"""
|
||||
await self.hass.async_add_executor_job(self.pause)
|
||||
|
||||
|
||||
# As we import deprecated constants from the const module, we need to add these two functions
|
||||
# otherwise this module will be logged for using deprecated constants and not the custom component
|
||||
# These can be removed if no deprecated constant are in this module anymore
|
||||
__getattr__ = partial(check_if_deprecated_constant, module_globals=globals())
|
||||
__dir__ = partial(
|
||||
dir_with_deprecated_constants, module_globals_keys=[*globals().keys()]
|
||||
)
|
||||
__all__ = all_with_deprecated_constants(globals())
|
||||
|
@ -2,10 +2,13 @@
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from enum import Enum
|
||||
from types import ModuleType
|
||||
from typing import Any
|
||||
|
||||
import pytest
|
||||
|
||||
from homeassistant.components import vacuum
|
||||
from homeassistant.components.vacuum import (
|
||||
DOMAIN,
|
||||
SERVICE_CLEAN_SPOT,
|
||||
@ -30,11 +33,45 @@ from . import MockVacuum, help_async_setup_entry_init, help_async_unload_entry
|
||||
from tests.common import (
|
||||
MockConfigEntry,
|
||||
MockModule,
|
||||
help_test_all,
|
||||
import_and_test_deprecated_constant_enum,
|
||||
mock_integration,
|
||||
setup_test_component_platform,
|
||||
)
|
||||
|
||||
|
||||
def _create_tuples(enum: type[Enum], constant_prefix: str) -> list[tuple[Enum, str]]:
|
||||
return [(enum_field, constant_prefix) for enum_field in enum if enum_field]
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"module",
|
||||
[vacuum],
|
||||
)
|
||||
def test_all(module: ModuleType) -> None:
|
||||
"""Test module.__all__ is correctly set."""
|
||||
help_test_all(module)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("enum", "constant_prefix"), _create_tuples(vacuum.VacuumEntityFeature, "SUPPORT_")
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
"module",
|
||||
[vacuum],
|
||||
)
|
||||
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.10"
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("service", "expected_state"),
|
||||
[
|
||||
|
Loading…
x
Reference in New Issue
Block a user