Raise kasa TimeoutError instead of _RetryableError on asyncio.TimeoutError

This commit is contained in:
Steven B 2025-01-06 12:39:46 +00:00
parent 9fd2f28420
commit 546ae633f9
No known key found for this signature in database
GPG Key ID: 6D5B46B3679F2A43
2 changed files with 6 additions and 5 deletions

View File

@ -23,6 +23,7 @@ from collections.abc import Generator
from kasa.deviceconfig import DeviceConfig
from kasa.exceptions import KasaException, _RetryableError
from kasa.exceptions import TimeoutError as KasaTimeoutError
from kasa.json import loads as json_loads
from .basetransport import BaseTransport
@ -128,7 +129,7 @@ class XorTransport(BaseTransport):
await self._connect(self._timeout)
except TimeoutError as ex:
await self.reset()
raise _RetryableError(
raise KasaTimeoutError(
f"Timeout after {self._timeout} seconds connecting to the device:"
f" {self._host}:{self._port}: {ex}"
) from ex
@ -167,7 +168,7 @@ class XorTransport(BaseTransport):
return await self._execute_send(request)
except TimeoutError as ex:
await self.reset()
raise _RetryableError(
raise KasaTimeoutError(
f"Timeout after {self._timeout} seconds sending request to the device"
f" {self._host}:{self._port}: {ex}"
) from ex

View File

@ -16,7 +16,7 @@ import pytest
from kasa.credentials import Credentials
from kasa.device import Device
from kasa.deviceconfig import DeviceConfig
from kasa.exceptions import KasaException, _RetryableError
from kasa.exceptions import KasaException, TimeoutError
from kasa.iot import IotDevice
from kasa.protocols.iotprotocol import IotProtocol, _deprecated_TPLinkSmartHomeProtocol
from kasa.protocols.protocol import (
@ -444,7 +444,7 @@ async def test_protocol_handles_timeout_failure_during_write(
protocol = protocol_class(transport=transport_class(config=config))
mocker.patch("asyncio.open_connection", side_effect=aio_mock_writer)
with pytest.raises(
_RetryableError,
TimeoutError,
match="Timeout after 5 seconds sending request to the device 127.0.0.1:9999: Simulated timeout",
):
await protocol.query({})
@ -490,7 +490,7 @@ async def test_protocol_handles_timeout_failure_during_connection(
mocker.patch("asyncio.open_connection", side_effect=aio_mock_writer)
with pytest.raises(
_RetryableError,
TimeoutError,
match="Timeout after 5 seconds connecting to the device: 127.0.0.1:9999: Simulated timeout",
):
await protocol.query({})