From 55a2645e78ae1509c480e64feb2a5c822ef312ba Mon Sep 17 00:00:00 2001 From: Steven Looman Date: Sun, 23 Jun 2024 21:21:56 +0200 Subject: [PATCH] Bump async_upnp_client to 0.39.0 (#120250) --- homeassistant/components/dlna_dmr/manifest.json | 2 +- homeassistant/components/dlna_dms/manifest.json | 2 +- homeassistant/components/samsungtv/manifest.json | 2 +- homeassistant/components/ssdp/manifest.json | 2 +- homeassistant/components/upnp/device.py | 15 +++++---------- homeassistant/components/upnp/manifest.json | 2 +- homeassistant/components/yeelight/manifest.json | 2 +- homeassistant/package_constraints.txt | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- tests/components/dlna_dmr/conftest.py | 1 + tests/components/dlna_dmr/test_config_flow.py | 2 ++ tests/components/upnp/conftest.py | 11 +++++------ tests/components/upnp/test_binary_sensor.py | 11 +++++------ tests/components/upnp/test_sensor.py | 11 +++++------ 15 files changed, 32 insertions(+), 37 deletions(-) diff --git a/homeassistant/components/dlna_dmr/manifest.json b/homeassistant/components/dlna_dmr/manifest.json index ebbab957700..963a22850df 100644 --- a/homeassistant/components/dlna_dmr/manifest.json +++ b/homeassistant/components/dlna_dmr/manifest.json @@ -8,7 +8,7 @@ "documentation": "https://www.home-assistant.io/integrations/dlna_dmr", "iot_class": "local_push", "loggers": ["async_upnp_client"], - "requirements": ["async-upnp-client==0.38.3", "getmac==0.9.4"], + "requirements": ["async-upnp-client==0.39.0", "getmac==0.9.4"], "ssdp": [ { "deviceType": "urn:schemas-upnp-org:device:MediaRenderer:1", diff --git a/homeassistant/components/dlna_dms/manifest.json b/homeassistant/components/dlna_dms/manifest.json index c87e5e87779..e02326376b3 100644 --- a/homeassistant/components/dlna_dms/manifest.json +++ b/homeassistant/components/dlna_dms/manifest.json @@ -8,7 +8,7 @@ "documentation": "https://www.home-assistant.io/integrations/dlna_dms", "iot_class": "local_polling", "quality_scale": "platinum", - "requirements": ["async-upnp-client==0.38.3"], + "requirements": ["async-upnp-client==0.39.0"], "ssdp": [ { "deviceType": "urn:schemas-upnp-org:device:MediaServer:1", diff --git a/homeassistant/components/samsungtv/manifest.json b/homeassistant/components/samsungtv/manifest.json index 460e191828e..7d9a8a9a0a8 100644 --- a/homeassistant/components/samsungtv/manifest.json +++ b/homeassistant/components/samsungtv/manifest.json @@ -39,7 +39,7 @@ "samsungctl[websocket]==0.7.1", "samsungtvws[async,encrypted]==2.6.0", "wakeonlan==2.1.0", - "async-upnp-client==0.38.3" + "async-upnp-client==0.39.0" ], "ssdp": [ { diff --git a/homeassistant/components/ssdp/manifest.json b/homeassistant/components/ssdp/manifest.json index 5e549c31806..304ee4b6410 100644 --- a/homeassistant/components/ssdp/manifest.json +++ b/homeassistant/components/ssdp/manifest.json @@ -8,5 +8,5 @@ "iot_class": "local_push", "loggers": ["async_upnp_client"], "quality_scale": "internal", - "requirements": ["async-upnp-client==0.38.3"] + "requirements": ["async-upnp-client==0.39.0"] } diff --git a/homeassistant/components/upnp/device.py b/homeassistant/components/upnp/device.py index 0b9eecb1b15..bb0bcfc6a6e 100644 --- a/homeassistant/components/upnp/device.py +++ b/homeassistant/components/upnp/device.py @@ -154,14 +154,9 @@ class Device: async def async_get_data(self) -> dict[str, str | datetime | int | float | None]: """Get all data from device.""" _LOGGER.debug("Getting data for device: %s", self) - igd_state = await self._igd_device.async_get_traffic_and_status_data() - status_info = igd_state.status_info - if status_info is not None and not isinstance(status_info, BaseException): - wan_status = status_info.connection_status - router_uptime = status_info.uptime - else: - wan_status = None - router_uptime = None + igd_state = await self._igd_device.async_get_traffic_and_status_data( + force_poll=True + ) def get_value(value: Any) -> Any: if value is None or isinstance(value, BaseException): @@ -175,8 +170,8 @@ class Device: BYTES_SENT: get_value(igd_state.bytes_sent), PACKETS_RECEIVED: get_value(igd_state.packets_received), PACKETS_SENT: get_value(igd_state.packets_sent), - WAN_STATUS: wan_status, - ROUTER_UPTIME: router_uptime, + WAN_STATUS: get_value(igd_state.connection_status), + ROUTER_UPTIME: get_value(igd_state.uptime), ROUTER_IP: get_value(igd_state.external_ip_address), KIBIBYTES_PER_SEC_RECEIVED: igd_state.kibibytes_per_sec_received, KIBIBYTES_PER_SEC_SENT: igd_state.kibibytes_per_sec_sent, diff --git a/homeassistant/components/upnp/manifest.json b/homeassistant/components/upnp/manifest.json index 7d353a475c7..b2972fc7790 100644 --- a/homeassistant/components/upnp/manifest.json +++ b/homeassistant/components/upnp/manifest.json @@ -8,7 +8,7 @@ "integration_type": "device", "iot_class": "local_polling", "loggers": ["async_upnp_client"], - "requirements": ["async-upnp-client==0.38.3", "getmac==0.9.4"], + "requirements": ["async-upnp-client==0.39.0", "getmac==0.9.4"], "ssdp": [ { "st": "urn:schemas-upnp-org:device:InternetGatewayDevice:1" diff --git a/homeassistant/components/yeelight/manifest.json b/homeassistant/components/yeelight/manifest.json index e9f304d38cb..4c63ab79baf 100644 --- a/homeassistant/components/yeelight/manifest.json +++ b/homeassistant/components/yeelight/manifest.json @@ -17,7 +17,7 @@ "iot_class": "local_push", "loggers": ["async_upnp_client", "yeelight"], "quality_scale": "platinum", - "requirements": ["yeelight==0.7.14", "async-upnp-client==0.38.3"], + "requirements": ["yeelight==0.7.14", "async-upnp-client==0.39.0"], "zeroconf": [ { "type": "_miio._udp.local.", diff --git a/homeassistant/package_constraints.txt b/homeassistant/package_constraints.txt index 7dfec9e63b3..a21d89705e8 100644 --- a/homeassistant/package_constraints.txt +++ b/homeassistant/package_constraints.txt @@ -10,7 +10,7 @@ aiohttp_cors==0.7.0 aiozoneinfo==0.2.0 astral==2.2 async-interrupt==1.1.1 -async-upnp-client==0.38.3 +async-upnp-client==0.39.0 atomicwrites-homeassistant==1.4.1 attrs==23.2.0 awesomeversion==24.2.0 diff --git a/requirements_all.txt b/requirements_all.txt index 1f4ada7f499..4f80886a568 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -490,7 +490,7 @@ asterisk_mbox==0.5.0 # homeassistant.components.ssdp # homeassistant.components.upnp # homeassistant.components.yeelight -async-upnp-client==0.38.3 +async-upnp-client==0.39.0 # homeassistant.components.arve asyncarve==0.0.9 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 65de7d41374..bafff5f2f77 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -445,7 +445,7 @@ asterisk_mbox==0.5.0 # homeassistant.components.ssdp # homeassistant.components.upnp # homeassistant.components.yeelight -async-upnp-client==0.38.3 +async-upnp-client==0.39.0 # homeassistant.components.arve asyncarve==0.0.9 diff --git a/tests/components/dlna_dmr/conftest.py b/tests/components/dlna_dmr/conftest.py index 0d88009f58e..f470fbabc6f 100644 --- a/tests/components/dlna_dmr/conftest.py +++ b/tests/components/dlna_dmr/conftest.py @@ -72,6 +72,7 @@ def domain_data_mock(hass: HomeAssistant) -> Iterable[Mock]: service_id="urn:upnp-org:serviceId:RenderingControl", ), } + upnp_device.all_services = list(upnp_device.services.values()) seal(upnp_device) domain_data.upnp_factory.async_create_device.return_value = upnp_device diff --git a/tests/components/dlna_dmr/test_config_flow.py b/tests/components/dlna_dmr/test_config_flow.py index 765d65ff0b9..a91cd4744d9 100644 --- a/tests/components/dlna_dmr/test_config_flow.py +++ b/tests/components/dlna_dmr/test_config_flow.py @@ -238,7 +238,9 @@ async def test_user_flow_embedded_st( embedded_device.device_type = MOCK_DEVICE_TYPE embedded_device.name = MOCK_DEVICE_NAME embedded_device.services = upnp_device.services + embedded_device.all_services = upnp_device.all_services upnp_device.services = {} + upnp_device.all_services = [] upnp_device.all_devices.append(embedded_device) result = await hass.config_entries.flow.async_init( diff --git a/tests/components/upnp/conftest.py b/tests/components/upnp/conftest.py index 00e8db124f0..0bfcd062ac0 100644 --- a/tests/components/upnp/conftest.py +++ b/tests/components/upnp/conftest.py @@ -8,7 +8,7 @@ from unittest.mock import AsyncMock, MagicMock, PropertyMock, create_autospec, p from urllib.parse import urlparse from async_upnp_client.client import UpnpDevice -from async_upnp_client.profiles.igd import IgdDevice, IgdState, StatusInfo +from async_upnp_client.profiles.igd import IgdDevice, IgdState import pytest from homeassistant.components import ssdp @@ -87,16 +87,15 @@ def mock_igd_device(mock_async_create_device) -> IgdDevice: bytes_sent=0, packets_received=0, packets_sent=0, - status_info=StatusInfo( - "Connected", - "", - 10, - ), + connection_status="Connected", + last_connection_error="", + uptime=10, external_ip_address="8.9.10.11", kibibytes_per_sec_received=None, kibibytes_per_sec_sent=None, packets_per_sec_received=None, packets_per_sec_sent=None, + port_mapping_number_of_entries=0, ) with patch( diff --git a/tests/components/upnp/test_binary_sensor.py b/tests/components/upnp/test_binary_sensor.py index 3a800ca75b9..087cd9e9fb4 100644 --- a/tests/components/upnp/test_binary_sensor.py +++ b/tests/components/upnp/test_binary_sensor.py @@ -2,7 +2,7 @@ from datetime import datetime, timedelta -from async_upnp_client.profiles.igd import IgdDevice, IgdState, StatusInfo +from async_upnp_client.profiles.igd import IgdDevice, IgdState from homeassistant.components.upnp.const import DEFAULT_SCAN_INTERVAL from homeassistant.core import HomeAssistant @@ -27,16 +27,15 @@ async def test_upnp_binary_sensors( bytes_sent=0, packets_received=0, packets_sent=0, - status_info=StatusInfo( - "Disconnected", - "", - 40, - ), + connection_status="Disconnected", + last_connection_error="", + uptime=40, external_ip_address="8.9.10.11", kibibytes_per_sec_received=None, kibibytes_per_sec_sent=None, packets_per_sec_received=None, packets_per_sec_sent=None, + port_mapping_number_of_entries=0, ) async_fire_time_changed( diff --git a/tests/components/upnp/test_sensor.py b/tests/components/upnp/test_sensor.py index 7dfbb144b01..67a64b265d9 100644 --- a/tests/components/upnp/test_sensor.py +++ b/tests/components/upnp/test_sensor.py @@ -2,7 +2,7 @@ from datetime import datetime, timedelta -from async_upnp_client.profiles.igd import IgdDevice, IgdState, StatusInfo +from async_upnp_client.profiles.igd import IgdDevice, IgdState from homeassistant.components.upnp.const import DEFAULT_SCAN_INTERVAL from homeassistant.core import HomeAssistant @@ -35,16 +35,15 @@ async def test_upnp_sensors( bytes_sent=20480, packets_received=30, packets_sent=40, - status_info=StatusInfo( - "Disconnected", - "", - 40, - ), + connection_status="Disconnected", + last_connection_error="", + uptime=40, external_ip_address="", kibibytes_per_sec_received=10.0, kibibytes_per_sec_sent=20.0, packets_per_sec_received=30.0, packets_per_sec_sent=40.0, + port_mapping_number_of_entries=0, ) now = dt_util.utcnow()