Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions homeassistant/components/demo/vacuum.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
SUPPORT_STOP,
SUPPORT_TURN_OFF,
SUPPORT_TURN_ON,
StateVacuumDevice,
VacuumDevice,
StateVacuumEntity,
VacuumEntity,
)

_LOGGER = logging.getLogger(__name__)
Expand Down Expand Up @@ -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):
Expand Down Expand Up @@ -254,7 +254,7 @@ def send_command(self, command, params=None, **kwargs):
self.schedule_update_ha_state()


class StateDemoVacuum(StateVacuumDevice):
class StateDemoVacuum(StateVacuumEntity):
"""Representation of a demo vacuum supporting states."""

def __init__(self, name):
Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/dyson/vacuum.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
SUPPORT_STOP,
SUPPORT_TURN_OFF,
SUPPORT_TURN_ON,
VacuumDevice,
VacuumEntity,
)
from homeassistant.helpers.icon import icon_for_battery_level

Expand Down Expand Up @@ -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):
Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/ecovacs/vacuum.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
SUPPORT_STOP,
SUPPORT_TURN_OFF,
SUPPORT_TURN_ON,
VacuumDevice,
VacuumEntity,
)
from homeassistant.helpers.icon import icon_for_battery_level

Expand Down Expand Up @@ -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):
Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/mqtt/vacuum/schema_legacy.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
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
Expand Down Expand Up @@ -174,7 +174,7 @@ class MqttVacuum(
MqttAvailability,
MqttDiscoveryUpdate,
MqttEntityDeviceInfo,
VacuumDevice,
VacuumEntity,
):
"""Representation of a MQTT-controlled legacy vacuum."""

Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/mqtt/vacuum/schema_state.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
SUPPORT_START,
SUPPORT_STATUS,
SUPPORT_STOP,
StateVacuumDevice,
StateVacuumEntity,
)
from homeassistant.const import ATTR_SUPPORTED_FEATURES, CONF_DEVICE, CONF_NAME
from homeassistant.core import callback
Expand Down Expand Up @@ -162,7 +162,7 @@ class MqttStateVacuum(
MqttAvailability,
MqttDiscoveryUpdate,
MqttEntityDeviceInfo,
StateVacuumDevice,
StateVacuumEntity,
):
"""Representation of a MQTT-controlled state vacuum."""

Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/neato/vacuum.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
SUPPORT_START,
SUPPORT_STATE,
SUPPORT_STOP,
StateVacuumDevice,
StateVacuumEntity,
)
from homeassistant.const import ATTR_ENTITY_ID, ATTR_MODE
import homeassistant.helpers.config_validation as cv
Expand Down Expand Up @@ -126,7 +126,7 @@ def service_to_entities(call):
)


class NeatoConnectedVacuum(StateVacuumDevice):
class NeatoConnectedVacuum(StateVacuumEntity):
"""Representation of a Neato Connected Vacuum."""

def __init__(self, neato, robot, mapdata, persistent_maps):
Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/roomba/irobot_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
SUPPORT_START,
SUPPORT_STATE,
SUPPORT_STOP,
StateVacuumDevice,
StateVacuumEntity,
)
from homeassistant.helpers.entity import Entity

Expand Down Expand Up @@ -104,7 +104,7 @@ def on_message(self, json_data):
self.schedule_update_ha_state()


class IRobotVacuum(IRobotEntity, StateVacuumDevice):
class IRobotVacuum(IRobotEntity, StateVacuumEntity):
"""Base class for iRobot robots."""

def __init__(self, roomba, blid):
Expand Down
4 changes: 2 additions & 2 deletions homeassistant/components/template/vacuum.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
SUPPORT_START,
SUPPORT_STATE,
SUPPORT_STOP,
StateVacuumDevice,
StateVacuumEntity,
)
from homeassistant.const import (
CONF_ENTITY_ID,
Expand Down Expand Up @@ -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__(
Expand Down
28 changes: 26 additions & 2 deletions homeassistant/components/vacuum/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ async def async_send_command(self, command, params=None, **kwargs):
)


class VacuumDevice(_BaseVacuum, ToggleEntity):
class VacuumEntity(_BaseVacuum, ToggleEntity):
"""Representation of a vacuum cleaner robot."""

@property
Expand Down Expand Up @@ -309,7 +309,19 @@ async def async_start(self):
"""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
Expand Down Expand Up @@ -377,3 +389,15 @@ async def async_turn_off(self, **kwargs):

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__,
)
4 changes: 2 additions & 2 deletions homeassistant/components/xiaomi_miio/vacuum.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
SUPPORT_START,
SUPPORT_STATE,
SUPPORT_STOP,
StateVacuumDevice,
StateVacuumEntity,
)
from homeassistant.const import (
ATTR_ENTITY_ID,
Expand Down Expand Up @@ -229,7 +229,7 @@ async def async_service_handler(service):
)


class MiroboVacuum(StateVacuumDevice):
class MiroboVacuum(StateVacuumEntity):
"""Representation of a Xiaomi Vacuum cleaner robot."""

def __init__(self, name, vacuum):
Expand Down
4 changes: 2 additions & 2 deletions tests/components/demo/test_vacuum.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand All @@ -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
Expand Down
18 changes: 18 additions & 0 deletions tests/components/vacuum/test_init.py
Original file line number Diff line number Diff line change
@@ -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