Bump pydeako to 0.6.0 (#132432)

feat: update deako integration to use improved version of pydeako

Some things of note:
- simplified errors
- pydeako has introduced some connection improvements

See here: https://github.com/DeakoLights/pydeako/releases/tag/0.6.0
This commit is contained in:
Blake Bryant 2024-12-05 23:28:02 -08:00 committed by GitHub
parent 9058e00aef
commit ef55a8e665
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 11 additions and 41 deletions

View File

@ -4,8 +4,7 @@ from __future__ import annotations
import logging import logging
from pydeako.deako import Deako, DeviceListTimeout, FindDevicesTimeout from pydeako import Deako, DeakoDiscoverer, FindDevicesError
from pydeako.discover import DeakoDiscoverer
from homeassistant.components import zeroconf from homeassistant.components import zeroconf
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
@ -30,12 +29,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: DeakoConfigEntry) -> boo
await connection.connect() await connection.connect()
try: try:
await connection.find_devices() await connection.find_devices()
except DeviceListTimeout as exc: # device list never received except FindDevicesError as exc:
_LOGGER.warning("Device not responding to device list") _LOGGER.warning("Error finding devices: %s", exc)
await connection.disconnect()
raise ConfigEntryNotReady(exc) from exc
except FindDevicesTimeout as exc: # total devices expected not received
_LOGGER.warning("Device not responding to device requests")
await connection.disconnect() await connection.disconnect()
raise ConfigEntryNotReady(exc) from exc raise ConfigEntryNotReady(exc) from exc

View File

@ -1,6 +1,6 @@
"""Config flow for deako.""" """Config flow for deako."""
from pydeako.discover import DeakoDiscoverer, DevicesNotFoundException from pydeako import DeakoDiscoverer, DevicesNotFoundException
from homeassistant.components import zeroconf from homeassistant.components import zeroconf
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant

View File

@ -2,7 +2,7 @@
from typing import Any from typing import Any
from pydeako.deako import Deako from pydeako import Deako
from homeassistant.components.light import ATTR_BRIGHTNESS, ColorMode, LightEntity from homeassistant.components.light import ATTR_BRIGHTNESS, ColorMode, LightEntity
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant

View File

@ -7,7 +7,7 @@
"documentation": "https://www.home-assistant.io/integrations/deako", "documentation": "https://www.home-assistant.io/integrations/deako",
"iot_class": "local_polling", "iot_class": "local_polling",
"loggers": ["pydeako"], "loggers": ["pydeako"],
"requirements": ["pydeako==0.5.4"], "requirements": ["pydeako==0.6.0"],
"single_config_entry": true, "single_config_entry": true,
"zeroconf": ["_deako._tcp.local."] "zeroconf": ["_deako._tcp.local."]
} }

View File

@ -1841,7 +1841,7 @@ pydaikin==2.13.7
pydanfossair==0.1.0 pydanfossair==0.1.0
# homeassistant.components.deako # homeassistant.components.deako
pydeako==0.5.4 pydeako==0.6.0
# homeassistant.components.deconz # homeassistant.components.deconz
pydeconz==118 pydeconz==118

View File

@ -1491,7 +1491,7 @@ pycsspeechtts==1.0.8
pydaikin==2.13.7 pydaikin==2.13.7
# homeassistant.components.deako # homeassistant.components.deako
pydeako==0.5.4 pydeako==0.6.0
# homeassistant.components.deconz # homeassistant.components.deconz
pydeconz==118 pydeconz==118

View File

@ -2,7 +2,7 @@
from unittest.mock import MagicMock from unittest.mock import MagicMock
from pydeako.deako import DeviceListTimeout, FindDevicesTimeout from pydeako import FindDevicesError
from homeassistant.config_entries import ConfigEntryState from homeassistant.config_entries import ConfigEntryState
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
@ -37,7 +37,7 @@ async def test_deako_async_setup_entry(
assert mock_config_entry.runtime_data == pydeako_deako_mock.return_value assert mock_config_entry.runtime_data == pydeako_deako_mock.return_value
async def test_deako_async_setup_entry_device_list_timeout( async def test_deako_async_setup_entry_devices_error(
hass: HomeAssistant, hass: HomeAssistant,
mock_config_entry: MockConfigEntry, mock_config_entry: MockConfigEntry,
pydeako_deako_mock: MagicMock, pydeako_deako_mock: MagicMock,
@ -47,32 +47,7 @@ async def test_deako_async_setup_entry_device_list_timeout(
mock_config_entry.add_to_hass(hass) mock_config_entry.add_to_hass(hass)
pydeako_deako_mock.return_value.find_devices.side_effect = DeviceListTimeout() pydeako_deako_mock.return_value.find_devices.side_effect = FindDevicesError()
await hass.config_entries.async_setup(mock_config_entry.entry_id)
await hass.async_block_till_done()
pydeako_deako_mock.assert_called_once_with(
pydeako_discoverer_mock.return_value.get_address
)
pydeako_deako_mock.return_value.connect.assert_called_once()
pydeako_deako_mock.return_value.find_devices.assert_called_once()
pydeako_deako_mock.return_value.disconnect.assert_called_once()
assert mock_config_entry.state is ConfigEntryState.SETUP_RETRY
async def test_deako_async_setup_entry_find_devices_timeout(
hass: HomeAssistant,
mock_config_entry: MockConfigEntry,
pydeako_deako_mock: MagicMock,
pydeako_discoverer_mock: MagicMock,
) -> None:
"""Test async_setup_entry raises ConfigEntryNotReady when pydeako raises FindDevicesTimeout."""
mock_config_entry.add_to_hass(hass)
pydeako_deako_mock.return_value.find_devices.side_effect = FindDevicesTimeout()
await hass.config_entries.async_setup(mock_config_entry.entry_id) await hass.config_entries.async_setup(mock_config_entry.entry_id)
await hass.async_block_till_done() await hass.async_block_till_done()