Rename VacuumDevice to VacuumEntity (#34674)

pull/34750/head
Erik Montnemery 2020-04-26 02:11:08 +02:00 committed by GitHub
parent 90e0a1af8a
commit d3ed80cf53
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 66 additions and 24 deletions

View File

@ -21,8 +21,8 @@ from homeassistant.components.vacuum import (
SUPPORT_STOP,
SUPPORT_TURN_OFF,
SUPPORT_TURN_ON,
StateVacuumDevice,
VacuumDevice,
StateVacuumEntity,
VacuumEntity,
)
_LOGGER = logging.getLogger(__name__)
@ -95,7 +95,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
)
class DemoVacuum(VacuumDevice):
class DemoVacuum(VacuumEntity):
"""Representation of a demo vacuum."""
def __init__(self, name, supported_features):
@ -254,7 +254,7 @@ class DemoVacuum(VacuumDevice):
self.schedule_update_ha_state()
class StateDemoVacuum(StateVacuumDevice):
class StateDemoVacuum(StateVacuumEntity):
"""Representation of a demo vacuum supporting states."""
def __init__(self, name):

View File

@ -13,7 +13,7 @@ from homeassistant.components.vacuum import (
SUPPORT_STOP,
SUPPORT_TURN_OFF,
SUPPORT_TURN_ON,
VacuumDevice,
VacuumEntity,
)
from homeassistant.helpers.icon import icon_for_battery_level
@ -54,7 +54,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
return True
class Dyson360EyeDevice(VacuumDevice):
class Dyson360EyeDevice(VacuumEntity):
"""Dyson 360 Eye robot vacuum device."""
def __init__(self, device):

View File

@ -14,7 +14,7 @@ from homeassistant.components.vacuum import (
SUPPORT_STOP,
SUPPORT_TURN_OFF,
SUPPORT_TURN_ON,
VacuumDevice,
VacuumEntity,
)
from homeassistant.helpers.icon import icon_for_battery_level
@ -48,7 +48,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None):
add_entities(vacuums, True)
class EcovacsVacuum(VacuumDevice):
class EcovacsVacuum(VacuumEntity):
"""Ecovacs Vacuums such as Deebot."""
def __init__(self, device):

View File

@ -25,7 +25,7 @@ from homeassistant.components.vacuum import (
SUPPORT_STOP,
SUPPORT_TURN_OFF,
SUPPORT_TURN_ON,
VacuumDevice,
VacuumEntity,
)
from homeassistant.const import ATTR_SUPPORTED_FEATURES, CONF_DEVICE, CONF_NAME
from homeassistant.core import callback
@ -174,7 +174,7 @@ class MqttVacuum(
MqttAvailability,
MqttDiscoveryUpdate,
MqttEntityDeviceInfo,
VacuumDevice,
VacuumEntity,
):
"""Representation of a MQTT-controlled legacy vacuum."""

View File

@ -34,7 +34,7 @@ from homeassistant.components.vacuum import (
SUPPORT_START,
SUPPORT_STATUS,
SUPPORT_STOP,
StateVacuumDevice,
StateVacuumEntity,
)
from homeassistant.const import ATTR_SUPPORTED_FEATURES, CONF_DEVICE, CONF_NAME
from homeassistant.core import callback
@ -162,7 +162,7 @@ class MqttStateVacuum(
MqttAvailability,
MqttDiscoveryUpdate,
MqttEntityDeviceInfo,
StateVacuumDevice,
StateVacuumEntity,
):
"""Representation of a MQTT-controlled state vacuum."""

View File

@ -22,7 +22,7 @@ from homeassistant.components.vacuum import (
SUPPORT_START,
SUPPORT_STATE,
SUPPORT_STOP,
StateVacuumDevice,
StateVacuumEntity,
)
from homeassistant.const import ATTR_ENTITY_ID, ATTR_MODE
import homeassistant.helpers.config_validation as cv
@ -126,7 +126,7 @@ async def async_setup_entry(hass, entry, async_add_entities):
)
class NeatoConnectedVacuum(StateVacuumDevice):
class NeatoConnectedVacuum(StateVacuumEntity):
"""Representation of a Neato Connected Vacuum."""
def __init__(self, neato, robot, mapdata, persistent_maps):

View File

@ -17,7 +17,7 @@ from homeassistant.components.vacuum import (
SUPPORT_START,
SUPPORT_STATE,
SUPPORT_STOP,
StateVacuumDevice,
StateVacuumEntity,
)
from homeassistant.helpers.entity import Entity
@ -104,7 +104,7 @@ class IRobotEntity(Entity):
self.schedule_update_ha_state()
class IRobotVacuum(IRobotEntity, StateVacuumDevice):
class IRobotVacuum(IRobotEntity, StateVacuumEntity):
"""Base class for iRobot robots."""
def __init__(self, roomba, blid):

View File

@ -28,7 +28,7 @@ from homeassistant.components.vacuum import (
SUPPORT_START,
SUPPORT_STATE,
SUPPORT_STOP,
StateVacuumDevice,
StateVacuumEntity,
)
from homeassistant.const import (
CONF_ENTITY_ID,
@ -144,7 +144,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
async_add_entities(vacuums)
class TemplateVacuum(StateVacuumDevice):
class TemplateVacuum(StateVacuumEntity):
"""A template vacuum component."""
def __init__(

View File

@ -228,7 +228,7 @@ class _BaseVacuum(Entity):
)
class VacuumDevice(_BaseVacuum, ToggleEntity):
class VacuumEntity(_BaseVacuum, ToggleEntity):
"""Representation of a vacuum cleaner robot."""
@property
@ -309,7 +309,19 @@ class VacuumDevice(_BaseVacuum, ToggleEntity):
"""Not supported."""
class StateVacuumDevice(_BaseVacuum):
class VacuumDevice(VacuumEntity):
"""Representation of a vacuum (for backwards compatibility)."""
def __init_subclass__(cls, **kwargs):
"""Print deprecation warning."""
super().__init_subclass__(**kwargs)
_LOGGER.warning(
"VacuumDevice is deprecated, modify %s to extend VacuumEntity",
cls.__name__,
)
class StateVacuumEntity(_BaseVacuum):
"""Representation of a vacuum cleaner robot that supports states."""
@property
@ -377,3 +389,15 @@ class StateVacuumDevice(_BaseVacuum):
async def async_toggle(self, **kwargs):
"""Not supported."""
class StateVacuumDevice(StateVacuumEntity):
"""Representation of a vacuum (for backwards compatibility)."""
def __init_subclass__(cls, **kwargs):
"""Print deprecation warning."""
super().__init_subclass__(**kwargs)
_LOGGER.warning(
"StateVacuumDevice is deprecated, modify %s to extend StateVacuumEntity",
cls.__name__,
)

View File

@ -25,7 +25,7 @@ from homeassistant.components.vacuum import (
SUPPORT_START,
SUPPORT_STATE,
SUPPORT_STOP,
StateVacuumDevice,
StateVacuumEntity,
)
from homeassistant.const import (
ATTR_ENTITY_ID,
@ -229,7 +229,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info=
)
class MiroboVacuum(StateVacuumDevice):
class MiroboVacuum(StateVacuumEntity):
"""Representation of a Xiaomi Vacuum cleaner robot."""
def __init__(self, name, vacuum):

View File

@ -228,7 +228,7 @@ async def test_unsupported_methods(hass):
assert "spot" not in state.attributes.get(ATTR_STATUS)
assert state.state == STATE_OFF
# VacuumDevice should not support start and pause methods.
# VacuumEntity should not support start and pause methods.
hass.states.async_set(ENTITY_VACUUM_COMPLETE, STATE_ON)
await hass.async_block_till_done()
assert vacuum.is_on(hass, ENTITY_VACUUM_COMPLETE)
@ -243,7 +243,7 @@ async def test_unsupported_methods(hass):
await common.async_start(hass, ENTITY_VACUUM_COMPLETE)
assert not vacuum.is_on(hass, ENTITY_VACUUM_COMPLETE)
# StateVacuumDevice does not support on/off
# StateVacuumEntity does not support on/off
await common.async_turn_on(hass, entity_id=ENTITY_VACUUM_STATE)
state = hass.states.get(ENTITY_VACUUM_STATE)
assert state.state != STATE_CLEANING

View File

@ -0,0 +1,18 @@
"""The tests for Vacuum."""
from homeassistant.components import vacuum
def test_deprecated_base_class(caplog):
"""Test deprecated base class."""
class CustomVacuum(vacuum.VacuumDevice):
pass
class CustomStateVacuum(vacuum.StateVacuumDevice):
pass
CustomVacuum()
assert "VacuumDevice is deprecated, modify CustomVacuum" in caplog.text
CustomStateVacuum()
assert "StateVacuumDevice is deprecated, modify CustomStateVacuum" in caplog.text