Rename and deprecate exception classes (#739)

# Public #
SmartDeviceException -> KasaException
UnsupportedDeviceException(SmartDeviceException) -> UnsupportedDeviceError(KasaException)
TimeoutException(SmartDeviceException, asyncio.TimeoutError) -> TimeoutError(KasaException, asyncio.TimeoutError)

Add new exception for error codes -> DeviceError(KasaException)
AuthenticationException(SmartDeviceException) -> AuthenticationError(DeviceError)

# Internal #
RetryableException(SmartDeviceException) -> _RetryableError(DeviceError)
ConnectionException(SmartDeviceException) -> _ConnectionError(KasaException)
This commit is contained in:
Steven B
2024-02-21 15:52:55 +00:00
committed by GitHub
parent 4beff228c9
commit 8c39e81a40
44 changed files with 393 additions and 361 deletions

View File

@@ -10,7 +10,7 @@ from voluptuous import (
Schema,
)
from kasa import EmeterStatus, SmartDeviceException
from kasa import EmeterStatus, KasaException
from kasa.iot import IotDevice
from kasa.iot.modules.emeter import Emeter
@@ -38,16 +38,16 @@ CURRENT_CONSUMPTION_SCHEMA = Schema(
async def test_no_emeter(dev):
assert not dev.has_emeter
with pytest.raises(SmartDeviceException):
with pytest.raises(KasaException):
await dev.get_emeter_realtime()
# Only iot devices support the historical stats so other
# devices will not implement the methods below
if isinstance(dev, IotDevice):
with pytest.raises(SmartDeviceException):
with pytest.raises(KasaException):
await dev.get_emeter_daily()
with pytest.raises(SmartDeviceException):
with pytest.raises(KasaException):
await dev.get_emeter_monthly()
with pytest.raises(SmartDeviceException):
with pytest.raises(KasaException):
await dev.erase_emeter_stats()