From b30d117e7d588ee31df882f7be9f0078edffe0b2 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Sat, 25 Apr 2020 18:02:41 +0200 Subject: [PATCH] Rename LockDevice to LockEntity (#34594) --- homeassistant/components/abode/lock.py | 4 ++-- homeassistant/components/august/lock.py | 4 ++-- .../components/bmw_connected_drive/lock.py | 4 ++-- homeassistant/components/demo/lock.py | 4 ++-- .../components/homekit_controller/lock.py | 4 ++-- homeassistant/components/homematic/lock.py | 4 ++-- homeassistant/components/isy994/lock.py | 4 ++-- homeassistant/components/keba/lock.py | 4 ++-- homeassistant/components/kiwi/lock.py | 4 ++-- homeassistant/components/lock/__init__.py | 15 ++++++++++++++- homeassistant/components/lockitron/lock.py | 4 ++-- homeassistant/components/mqtt/lock.py | 4 ++-- homeassistant/components/nello/lock.py | 4 ++-- homeassistant/components/nuki/lock.py | 4 ++-- homeassistant/components/sesame/lock.py | 4 ++-- homeassistant/components/simplisafe/lock.py | 4 ++-- homeassistant/components/smartthings/lock.py | 4 ++-- homeassistant/components/starline/lock.py | 4 ++-- homeassistant/components/tahoma/lock.py | 4 ++-- homeassistant/components/template/lock.py | 4 ++-- homeassistant/components/tesla/lock.py | 4 ++-- homeassistant/components/vera/lock.py | 4 ++-- homeassistant/components/verisure/lock.py | 4 ++-- homeassistant/components/volvooncall/lock.py | 4 ++-- homeassistant/components/wink/lock.py | 4 ++-- homeassistant/components/xiaomi_aqara/lock.py | 4 ++-- homeassistant/components/zha/lock.py | 4 ++-- homeassistant/components/zwave/lock.py | 4 ++-- tests/components/lock/test_init.py | 12 ++++++++++++ .../testing_config/custom_components/test/lock.py | 4 ++-- 30 files changed, 82 insertions(+), 57 deletions(-) create mode 100644 tests/components/lock/test_init.py diff --git a/homeassistant/components/abode/lock.py b/homeassistant/components/abode/lock.py index 33431433ef9..2a52663c0e7 100644 --- a/homeassistant/components/abode/lock.py +++ b/homeassistant/components/abode/lock.py @@ -1,7 +1,7 @@ """Support for the Abode Security System locks.""" import abodepy.helpers.constants as CONST -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from . import AbodeDevice from .const import DOMAIN @@ -19,7 +19,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): async_add_entities(entities) -class AbodeLock(AbodeDevice, LockDevice): +class AbodeLock(AbodeDevice, LockEntity): """Representation of an Abode lock.""" def lock(self, **kwargs): diff --git a/homeassistant/components/august/lock.py b/homeassistant/components/august/lock.py index 495c215edad..e16c603d919 100644 --- a/homeassistant/components/august/lock.py +++ b/homeassistant/components/august/lock.py @@ -5,7 +5,7 @@ from august.activity import ActivityType from august.lock import LockStatus from august.util import update_lock_detail_from_activity -from homeassistant.components.lock import ATTR_CHANGED_BY, LockDevice +from homeassistant.components.lock import ATTR_CHANGED_BY, LockEntity from homeassistant.const import ATTR_BATTERY_LEVEL from homeassistant.core import callback from homeassistant.helpers.restore_state import RestoreEntity @@ -28,7 +28,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): async_add_entities(devices, True) -class AugustLock(AugustEntityMixin, RestoreEntity, LockDevice): +class AugustLock(AugustEntityMixin, RestoreEntity, LockEntity): """Representation of an August lock.""" def __init__(self, data, device): diff --git a/homeassistant/components/bmw_connected_drive/lock.py b/homeassistant/components/bmw_connected_drive/lock.py index 7d4ad420af4..d30f1702ae8 100644 --- a/homeassistant/components/bmw_connected_drive/lock.py +++ b/homeassistant/components/bmw_connected_drive/lock.py @@ -3,7 +3,7 @@ import logging from bimmer_connected.state import LockState -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from homeassistant.const import ATTR_ATTRIBUTION, STATE_LOCKED, STATE_UNLOCKED from . import DOMAIN as BMW_DOMAIN @@ -26,7 +26,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(devices, True) -class BMWLock(LockDevice): +class BMWLock(LockEntity): """Representation of a BMW vehicle lock.""" def __init__(self, account, vehicle, attribute: str, sensor_name): diff --git a/homeassistant/components/demo/lock.py b/homeassistant/components/demo/lock.py index 5074741d83d..63f2d218957 100644 --- a/homeassistant/components/demo/lock.py +++ b/homeassistant/components/demo/lock.py @@ -1,5 +1,5 @@ """Demo lock platform that has two fake locks.""" -from homeassistant.components.lock import SUPPORT_OPEN, LockDevice +from homeassistant.components.lock import SUPPORT_OPEN, LockEntity from homeassistant.const import STATE_LOCKED, STATE_UNLOCKED @@ -19,7 +19,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): await async_setup_platform(hass, {}, async_add_entities) -class DemoLock(LockDevice): +class DemoLock(LockEntity): """Representation of a Demo lock.""" def __init__(self, name, state, openable=False): diff --git a/homeassistant/components/homekit_controller/lock.py b/homeassistant/components/homekit_controller/lock.py index c07f85fb50f..93bb4f1568f 100644 --- a/homeassistant/components/homekit_controller/lock.py +++ b/homeassistant/components/homekit_controller/lock.py @@ -3,7 +3,7 @@ import logging from aiohomekit.model.characteristics import CharacteristicsTypes -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from homeassistant.const import ATTR_BATTERY_LEVEL, STATE_LOCKED, STATE_UNLOCKED from homeassistant.core import callback @@ -34,7 +34,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): conn.add_listener(async_add_service) -class HomeKitLock(HomeKitEntity, LockDevice): +class HomeKitLock(HomeKitEntity, LockEntity): """Representation of a HomeKit Controller Lock.""" def get_characteristic_types(self): diff --git a/homeassistant/components/homematic/lock.py b/homeassistant/components/homematic/lock.py index 0094ecd2e81..9a705627fa4 100644 --- a/homeassistant/components/homematic/lock.py +++ b/homeassistant/components/homematic/lock.py @@ -1,7 +1,7 @@ """Support for Homematic locks.""" import logging -from homeassistant.components.lock import SUPPORT_OPEN, LockDevice +from homeassistant.components.lock import SUPPORT_OPEN, LockEntity from .const import ATTR_DISCOVER_DEVICES from .entity import HMDevice @@ -21,7 +21,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(devices, True) -class HMLock(HMDevice, LockDevice): +class HMLock(HMDevice, LockEntity): """Representation of a Homematic lock aka KeyMatic.""" @property diff --git a/homeassistant/components/isy994/lock.py b/homeassistant/components/isy994/lock.py index 9ea7c9e1f6e..807027d4610 100644 --- a/homeassistant/components/isy994/lock.py +++ b/homeassistant/components/isy994/lock.py @@ -2,7 +2,7 @@ import logging from typing import Callable -from homeassistant.components.lock import DOMAIN, LockDevice +from homeassistant.components.lock import DOMAIN, LockEntity from homeassistant.const import STATE_LOCKED, STATE_UNKNOWN, STATE_UNLOCKED from homeassistant.helpers.typing import ConfigType @@ -27,7 +27,7 @@ def setup_platform( add_entities(devices) -class ISYLockDevice(ISYDevice, LockDevice): +class ISYLockDevice(ISYDevice, LockEntity): """Representation of an ISY994 lock device.""" def __init__(self, node) -> None: diff --git a/homeassistant/components/keba/lock.py b/homeassistant/components/keba/lock.py index f69fbdddf20..385adf662be 100644 --- a/homeassistant/components/keba/lock.py +++ b/homeassistant/components/keba/lock.py @@ -1,7 +1,7 @@ """Support for KEBA charging station switch.""" import logging -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from . import DOMAIN @@ -19,7 +19,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= async_add_entities(sensors) -class KebaLock(LockDevice): +class KebaLock(LockEntity): """The entity class for KEBA charging stations switch.""" def __init__(self, keba, name, entity_type): diff --git a/homeassistant/components/kiwi/lock.py b/homeassistant/components/kiwi/lock.py index 4a58f8f43c2..79971d5aa93 100644 --- a/homeassistant/components/kiwi/lock.py +++ b/homeassistant/components/kiwi/lock.py @@ -4,7 +4,7 @@ import logging from kiwiki import KiwiClient, KiwiException import voluptuous as vol -from homeassistant.components.lock import PLATFORM_SCHEMA, LockDevice +from homeassistant.components.lock import PLATFORM_SCHEMA, LockEntity from homeassistant.const import ( ATTR_ID, ATTR_LATITUDE, @@ -47,7 +47,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities([KiwiLock(lock, kiwi) for lock in available_locks], True) -class KiwiLock(LockDevice): +class KiwiLock(LockEntity): """Representation of a Kiwi lock.""" def __init__(self, kiwi_lock, client): diff --git a/homeassistant/components/lock/__init__.py b/homeassistant/components/lock/__init__.py index 1b79108846f..fb10580a1cc 100644 --- a/homeassistant/components/lock/__init__.py +++ b/homeassistant/components/lock/__init__.py @@ -25,6 +25,8 @@ from homeassistant.helpers.entity_component import EntityComponent # mypy: allow-untyped-defs, no-check-untyped-defs +_LOGGER = logging.getLogger(__name__) + ATTR_CHANGED_BY = "changed_by" DOMAIN = "lock" @@ -75,7 +77,7 @@ async def async_unload_entry(hass, entry): return await hass.data[DOMAIN].async_unload_entry(entry) -class LockDevice(Entity): +class LockEntity(Entity): """Representation of a lock.""" @property @@ -134,3 +136,14 @@ class LockDevice(Entity): if locked is None: return None return STATE_LOCKED if locked else STATE_UNLOCKED + + +class LockDevice(LockEntity): + """Representation of a lock (for backwards compatibility).""" + + def __init_subclass__(cls, **kwargs): + """Print deprecation warning.""" + super().__init_subclass__(**kwargs) + _LOGGER.warning( + "LockDevice is deprecated, modify %s to extend LockEntity", cls.__name__, + ) diff --git a/homeassistant/components/lockitron/lock.py b/homeassistant/components/lockitron/lock.py index 7d34bb02472..e1ece3da725 100644 --- a/homeassistant/components/lockitron/lock.py +++ b/homeassistant/components/lockitron/lock.py @@ -4,7 +4,7 @@ import logging import requests import voluptuous as vol -from homeassistant.components.lock import PLATFORM_SCHEMA, LockDevice +from homeassistant.components.lock import PLATFORM_SCHEMA, LockEntity from homeassistant.const import CONF_ACCESS_TOKEN, CONF_ID, HTTP_OK import homeassistant.helpers.config_validation as cv @@ -31,7 +31,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): _LOGGER.error("Error retrieving lock status during init: %s", response.text) -class Lockitron(LockDevice): +class Lockitron(LockEntity): """Representation of a Lockitron lock.""" LOCK_STATE = "lock" diff --git a/homeassistant/components/mqtt/lock.py b/homeassistant/components/mqtt/lock.py index 378f1b8fbcb..34905fe8aa4 100644 --- a/homeassistant/components/mqtt/lock.py +++ b/homeassistant/components/mqtt/lock.py @@ -4,7 +4,7 @@ import logging import voluptuous as vol from homeassistant.components import lock, mqtt -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from homeassistant.const import ( CONF_DEVICE, CONF_NAME, @@ -108,7 +108,7 @@ class MqttLock( MqttAvailability, MqttDiscoveryUpdate, MqttEntityDeviceInfo, - LockDevice, + LockEntity, ): """Representation of a lock that can be toggled using MQTT.""" diff --git a/homeassistant/components/nello/lock.py b/homeassistant/components/nello/lock.py index 19f8e7aa14c..dc761d61461 100644 --- a/homeassistant/components/nello/lock.py +++ b/homeassistant/components/nello/lock.py @@ -5,7 +5,7 @@ import logging from pynello.private import Nello import voluptuous as vol -from homeassistant.components.lock import PLATFORM_SCHEMA, LockDevice +from homeassistant.components.lock import PLATFORM_SCHEMA, LockEntity from homeassistant.const import CONF_PASSWORD, CONF_USERNAME import homeassistant.helpers.config_validation as cv @@ -27,7 +27,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities([NelloLock(lock) for lock in nello.locations], True) -class NelloLock(LockDevice): +class NelloLock(LockEntity): """Representation of a Nello lock.""" def __init__(self, nello_lock): diff --git a/homeassistant/components/nuki/lock.py b/homeassistant/components/nuki/lock.py index 943dbc02fbf..3d382496b28 100644 --- a/homeassistant/components/nuki/lock.py +++ b/homeassistant/components/nuki/lock.py @@ -6,7 +6,7 @@ from pynuki import NukiBridge from requests.exceptions import RequestException import voluptuous as vol -from homeassistant.components.lock import PLATFORM_SCHEMA, SUPPORT_OPEN, LockDevice +from homeassistant.components.lock import PLATFORM_SCHEMA, SUPPORT_OPEN, LockEntity from homeassistant.const import ATTR_ENTITY_ID, CONF_HOST, CONF_PORT, CONF_TOKEN import homeassistant.helpers.config_validation as cv from homeassistant.helpers.service import extract_entity_ids @@ -71,7 +71,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(devices) -class NukiLock(LockDevice): +class NukiLock(LockEntity): """Representation of a Nuki lock.""" def __init__(self, nuki_lock): diff --git a/homeassistant/components/sesame/lock.py b/homeassistant/components/sesame/lock.py index fa12ff7a1b2..a2d205de240 100644 --- a/homeassistant/components/sesame/lock.py +++ b/homeassistant/components/sesame/lock.py @@ -4,7 +4,7 @@ from typing import Callable import pysesame2 import voluptuous as vol -from homeassistant.components.lock import PLATFORM_SCHEMA, LockDevice +from homeassistant.components.lock import PLATFORM_SCHEMA, LockEntity from homeassistant.const import ( ATTR_BATTERY_LEVEL, CONF_API_KEY, @@ -32,7 +32,7 @@ def setup_platform( ) -class SesameDevice(LockDevice): +class SesameDevice(LockEntity): """Representation of a Sesame device.""" def __init__(self, sesame: object) -> None: diff --git a/homeassistant/components/simplisafe/lock.py b/homeassistant/components/simplisafe/lock.py index fc98d67ccbf..78866ce9004 100644 --- a/homeassistant/components/simplisafe/lock.py +++ b/homeassistant/components/simplisafe/lock.py @@ -5,7 +5,7 @@ from simplipy.errors import SimplipyError from simplipy.lock import LockStates from simplipy.websocket import EVENT_LOCK_LOCKED, EVENT_LOCK_UNLOCKED -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from homeassistant.core import callback from . import SimpliSafeEntity @@ -30,7 +30,7 @@ async def async_setup_entry(hass, entry, async_add_entities): ) -class SimpliSafeLock(SimpliSafeEntity, LockDevice): +class SimpliSafeLock(SimpliSafeEntity, LockEntity): """Define a SimpliSafe lock.""" def __init__(self, simplisafe, system, lock): diff --git a/homeassistant/components/smartthings/lock.py b/homeassistant/components/smartthings/lock.py index d249cc5ac94..d6b615b47a7 100644 --- a/homeassistant/components/smartthings/lock.py +++ b/homeassistant/components/smartthings/lock.py @@ -3,7 +3,7 @@ from typing import Optional, Sequence from pysmartthings import Attribute, Capability -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from . import SmartThingsEntity from .const import DATA_BROKERS, DOMAIN @@ -38,7 +38,7 @@ def get_capabilities(capabilities: Sequence[str]) -> Optional[Sequence[str]]: return None -class SmartThingsLock(SmartThingsEntity, LockDevice): +class SmartThingsLock(SmartThingsEntity, LockEntity): """Define a SmartThings lock.""" async def async_lock(self, **kwargs): diff --git a/homeassistant/components/starline/lock.py b/homeassistant/components/starline/lock.py index 804e8c8df2d..56cd8686186 100644 --- a/homeassistant/components/starline/lock.py +++ b/homeassistant/components/starline/lock.py @@ -1,5 +1,5 @@ """Support for StarLine lock.""" -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from .account import StarlineAccount, StarlineDevice from .const import DOMAIN @@ -19,7 +19,7 @@ async def async_setup_entry(hass, entry, async_add_entities): async_add_entities(entities) -class StarlineLock(StarlineEntity, LockDevice): +class StarlineLock(StarlineEntity, LockEntity): """Representation of a StarLine lock.""" def __init__(self, account: StarlineAccount, device: StarlineDevice): diff --git a/homeassistant/components/tahoma/lock.py b/homeassistant/components/tahoma/lock.py index 0b02975fc7e..93d82bffc99 100644 --- a/homeassistant/components/tahoma/lock.py +++ b/homeassistant/components/tahoma/lock.py @@ -2,7 +2,7 @@ from datetime import timedelta import logging -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from homeassistant.const import ATTR_BATTERY_LEVEL, STATE_LOCKED, STATE_UNLOCKED from . import DOMAIN as TAHOMA_DOMAIN, TahomaDevice @@ -24,7 +24,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(devices, True) -class TahomaLock(TahomaDevice, LockDevice): +class TahomaLock(TahomaDevice, LockEntity): """Representation a Tahoma lock.""" def __init__(self, tahoma_device, controller): diff --git a/homeassistant/components/template/lock.py b/homeassistant/components/template/lock.py index a5caac00123..7a50e34f8cb 100644 --- a/homeassistant/components/template/lock.py +++ b/homeassistant/components/template/lock.py @@ -3,7 +3,7 @@ import logging import voluptuous as vol -from homeassistant.components.lock import PLATFORM_SCHEMA, LockDevice +from homeassistant.components.lock import PLATFORM_SCHEMA, LockEntity from homeassistant.const import ( CONF_NAME, CONF_OPTIMISTIC, @@ -72,7 +72,7 @@ async def async_setup_platform(hass, config, async_add_devices, discovery_info=N ) -class TemplateLock(LockDevice): +class TemplateLock(LockEntity): """Representation of a template lock.""" def __init__( diff --git a/homeassistant/components/tesla/lock.py b/homeassistant/components/tesla/lock.py index 7dffff5a5e0..91833d777fd 100644 --- a/homeassistant/components/tesla/lock.py +++ b/homeassistant/components/tesla/lock.py @@ -1,7 +1,7 @@ """Support for Tesla door locks.""" import logging -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from homeassistant.const import STATE_LOCKED, STATE_UNLOCKED from . import DOMAIN as TESLA_DOMAIN, TeslaDevice @@ -22,7 +22,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): async_add_entities(entities, True) -class TeslaLock(TeslaDevice, LockDevice): +class TeslaLock(TeslaDevice, LockEntity): """Representation of a Tesla door lock.""" def __init__(self, tesla_device, controller, config_entry): diff --git a/homeassistant/components/vera/lock.py b/homeassistant/components/vera/lock.py index da3c432a6af..f85beb5ba69 100644 --- a/homeassistant/components/vera/lock.py +++ b/homeassistant/components/vera/lock.py @@ -5,7 +5,7 @@ from typing import Callable, List from homeassistant.components.lock import ( DOMAIN as PLATFORM_DOMAIN, ENTITY_ID_FORMAT, - LockDevice, + LockEntity, ) from homeassistant.config_entries import ConfigEntry from homeassistant.const import STATE_LOCKED, STATE_UNLOCKED @@ -36,7 +36,7 @@ async def async_setup_entry( ) -class VeraLock(VeraDevice, LockDevice): +class VeraLock(VeraDevice, LockEntity): """Representation of a Vera lock.""" def __init__(self, vera_device, controller): diff --git a/homeassistant/components/verisure/lock.py b/homeassistant/components/verisure/lock.py index 5b5d50347ac..96e40c5c36f 100644 --- a/homeassistant/components/verisure/lock.py +++ b/homeassistant/components/verisure/lock.py @@ -2,7 +2,7 @@ import logging from time import monotonic, sleep -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from homeassistant.const import ATTR_CODE, STATE_LOCKED, STATE_UNLOCKED from . import CONF_CODE_DIGITS, CONF_DEFAULT_LOCK_CODE, CONF_LOCKS, HUB as hub @@ -25,7 +25,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): add_entities(locks) -class VerisureDoorlock(LockDevice): +class VerisureDoorlock(LockEntity): """Representation of a Verisure doorlock.""" def __init__(self, device_label): diff --git a/homeassistant/components/volvooncall/lock.py b/homeassistant/components/volvooncall/lock.py index 2319674cd43..efb8423777b 100644 --- a/homeassistant/components/volvooncall/lock.py +++ b/homeassistant/components/volvooncall/lock.py @@ -1,7 +1,7 @@ """Support for Volvo On Call locks.""" import logging -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from . import DATA_KEY, VolvoEntity @@ -16,7 +16,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= async_add_entities([VolvoLock(hass.data[DATA_KEY], *discovery_info)]) -class VolvoLock(VolvoEntity, LockDevice): +class VolvoLock(VolvoEntity, LockEntity): """Represents a car lock.""" @property diff --git a/homeassistant/components/wink/lock.py b/homeassistant/components/wink/lock.py index 57cf9d304ec..221d6d8165e 100644 --- a/homeassistant/components/wink/lock.py +++ b/homeassistant/components/wink/lock.py @@ -4,7 +4,7 @@ import logging import pywink import voluptuous as vol -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from homeassistant.const import ( ATTR_CODE, ATTR_ENTITY_ID, @@ -133,7 +133,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): ) -class WinkLockDevice(WinkDevice, LockDevice): +class WinkLockDevice(WinkDevice, LockEntity): """Representation of a Wink lock.""" async def async_added_to_hass(self): diff --git a/homeassistant/components/xiaomi_aqara/lock.py b/homeassistant/components/xiaomi_aqara/lock.py index ed71e05bf5f..c3835f83391 100644 --- a/homeassistant/components/xiaomi_aqara/lock.py +++ b/homeassistant/components/xiaomi_aqara/lock.py @@ -1,7 +1,7 @@ """Support for Xiaomi Aqara locks.""" import logging -from homeassistant.components.lock import LockDevice +from homeassistant.components.lock import LockEntity from homeassistant.const import STATE_LOCKED, STATE_UNLOCKED from homeassistant.core import callback from homeassistant.helpers.event import async_call_later @@ -32,7 +32,7 @@ async def async_setup_platform(hass, config, async_add_entities, discovery_info= async_add_entities(devices) -class XiaomiAqaraLock(LockDevice, XiaomiDevice): +class XiaomiAqaraLock(LockEntity, XiaomiDevice): """Representation of a XiaomiAqaraLock.""" def __init__(self, device, name, xiaomi_hub): diff --git a/homeassistant/components/zha/lock.py b/homeassistant/components/zha/lock.py index ba802120044..d70c1e2e7f3 100644 --- a/homeassistant/components/zha/lock.py +++ b/homeassistant/components/zha/lock.py @@ -8,7 +8,7 @@ from homeassistant.components.lock import ( DOMAIN, STATE_LOCKED, STATE_UNLOCKED, - LockDevice, + LockEntity, ) from homeassistant.core import callback from homeassistant.helpers.dispatcher import async_dispatcher_connect @@ -49,7 +49,7 @@ async def async_setup_entry(hass, config_entry, async_add_entities): @STRICT_MATCH(channel_names=CHANNEL_DOORLOCK) -class ZhaDoorLock(ZhaEntity, LockDevice): +class ZhaDoorLock(ZhaEntity, LockEntity): """Representation of a ZHA lock.""" def __init__(self, unique_id, zha_device, channels, **kwargs): diff --git a/homeassistant/components/zwave/lock.py b/homeassistant/components/zwave/lock.py index 0bbcf9815c6..924dfdfa4ad 100644 --- a/homeassistant/components/zwave/lock.py +++ b/homeassistant/components/zwave/lock.py @@ -3,7 +3,7 @@ import logging import voluptuous as vol -from homeassistant.components.lock import DOMAIN, LockDevice +from homeassistant.components.lock import DOMAIN, LockEntity from homeassistant.core import callback import homeassistant.helpers.config_validation as cv from homeassistant.helpers.dispatcher import async_dispatcher_connect @@ -239,7 +239,7 @@ def get_device(node, values, **kwargs): return ZwaveLock(values) -class ZwaveLock(ZWaveDeviceEntity, LockDevice): +class ZwaveLock(ZWaveDeviceEntity, LockEntity): """Representation of a Z-Wave Lock.""" def __init__(self, values): diff --git a/tests/components/lock/test_init.py b/tests/components/lock/test_init.py new file mode 100644 index 00000000000..a788b9fa917 --- /dev/null +++ b/tests/components/lock/test_init.py @@ -0,0 +1,12 @@ +"""The tests for Lock.""" +from homeassistant.components import lock + + +def test_deprecated_base_class(caplog): + """Test deprecated base class.""" + + class CustomLock(lock.LockDevice): + pass + + CustomLock() + assert "LockDevice is deprecated, modify CustomLock" in caplog.text diff --git a/tests/testing_config/custom_components/test/lock.py b/tests/testing_config/custom_components/test/lock.py index 24b04903541..4894f00fd75 100644 --- a/tests/testing_config/custom_components/test/lock.py +++ b/tests/testing_config/custom_components/test/lock.py @@ -3,7 +3,7 @@ Provide a mock lock platform. Call init before using it in your tests to ensure clean test data. """ -from homeassistant.components.lock import SUPPORT_OPEN, LockDevice +from homeassistant.components.lock import SUPPORT_OPEN, LockEntity from tests.common import MockEntity @@ -41,7 +41,7 @@ async def async_setup_platform( async_add_entities_callback(list(ENTITIES.values())) -class MockLock(MockEntity, LockDevice): +class MockLock(MockEntity, LockEntity): """Mock Lock class.""" @property