Bump fastdotcom to 0.0.6 (#155354)

This commit is contained in:
Abílio Costa
2025-10-28 21:08:19 +01:00
committed by GitHub
parent 7ead8f9154
commit 9364a40fd2
11 changed files with 54 additions and 17 deletions
@@ -15,7 +15,7 @@ from .const import DEFAULT_INTERVAL, DOMAIN, LOGGER
type FastdotcomConfigEntry = ConfigEntry[FastdotcomDataUpdateCoordinator]
class FastdotcomDataUpdateCoordinator(DataUpdateCoordinator[float]):
class FastdotcomDataUpdateCoordinator(DataUpdateCoordinator[dict[str, float] | None]):
"""Class to manage fetching Fast.com data API."""
def __init__(self, hass: HomeAssistant, entry: FastdotcomConfigEntry) -> None:
@@ -28,7 +28,7 @@ class FastdotcomDataUpdateCoordinator(DataUpdateCoordinator[float]):
update_interval=timedelta(hours=DEFAULT_INTERVAL),
)
async def _async_update_data(self) -> float:
async def _async_update_data(self) -> dict[str, float] | None:
"""Run an executor job to retrieve Fast.com data."""
try:
return await self.hass.async_add_executor_job(fast_com)
@@ -7,6 +7,6 @@
"integration_type": "service",
"iot_class": "cloud_polling",
"loggers": ["fastdotcom"],
"requirements": ["fastdotcom==0.0.3"],
"requirements": ["fastdotcom==0.0.6"],
"single_config_entry": true
}
@@ -51,6 +51,8 @@ class SpeedtestSensor(CoordinatorEntity[FastdotcomDataUpdateCoordinator], Sensor
@property
def native_value(
self,
) -> float:
) -> float | None:
"""Return the state of the sensor."""
return self.coordinator.data
if self.coordinator.data is None:
return None
return self.coordinator.data.get("download_speed")
+1 -1
View File
@@ -950,7 +950,7 @@ faadelays==2023.9.1
# face-recognition==1.2.3
# homeassistant.components.fastdotcom
fastdotcom==0.0.3
fastdotcom==0.0.6
# homeassistant.components.feedreader
feedparser==6.0.12
+1 -1
View File
@@ -829,7 +829,7 @@ faadelays==2023.9.1
# face-recognition==1.2.3
# homeassistant.components.fastdotcom
fastdotcom==0.0.3
fastdotcom==0.0.6
# homeassistant.components.feedreader
feedparser==6.0.12
+7
View File
@@ -1 +1,8 @@
"""Fast.com integration tests."""
MOCK_DATA = {
"download_speed": 100.0,
"upload_speed": 50.0,
"unloaded_ping": 15.2,
"loaded_ping": 20.2,
}
@@ -1,6 +1,11 @@
# serializer version: 1
# name: test_get_config_entry_diagnostics
dict({
'coordinator_data': 50.3,
'coordinator_data': dict({
'download_speed': 100.0,
'loaded_ping': 20.2,
'unloaded_ping': 15.2,
'upload_speed': 50.0,
}),
})
# ---
@@ -24,8 +24,15 @@ async def test_fastdotcom_data_update_coordinator(
)
config_entry.add_to_hass(hass)
mock_data = {
"download_speed": 5.0,
"upload_speed": 50.0,
"unloaded_ping": 15.2,
"loaded_ping": 20.2,
}
with patch(
"homeassistant.components.fastdotcom.coordinator.fast_com", return_value=5.0
"homeassistant.components.fastdotcom.coordinator.fast_com",
return_value=mock_data,
):
await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done()
@@ -34,8 +41,15 @@ async def test_fastdotcom_data_update_coordinator(
assert state is not None
assert state.state == "5.0"
mock_data = {
"download_speed": 10.0,
"upload_speed": 20.0,
"unloaded_ping": 5.0,
"loaded_ping": 20.0,
}
with patch(
"homeassistant.components.fastdotcom.coordinator.fast_com", return_value=10.0
"homeassistant.components.fastdotcom.coordinator.fast_com",
return_value=mock_data,
):
freezer.tick(timedelta(hours=DEFAULT_INTERVAL))
async_fire_time_changed(hass)
@@ -8,6 +8,8 @@ from homeassistant.components.fastdotcom.const import DEFAULT_NAME, DOMAIN
from homeassistant.config_entries import SOURCE_USER
from homeassistant.core import HomeAssistant
from . import MOCK_DATA
from tests.common import MockConfigEntry
from tests.components.diagnostics import get_diagnostics_for_config_entry
from tests.typing import ClientSessionGenerator
@@ -32,7 +34,8 @@ async def test_get_config_entry_diagnostics(
config_entry.add_to_hass(hass)
with patch(
"homeassistant.components.fastdotcom.coordinator.fast_com", return_value=50.3
"homeassistant.components.fastdotcom.coordinator.fast_com",
return_value=MOCK_DATA,
):
await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done()
+7 -4
View File
@@ -11,6 +11,8 @@ from homeassistant.config_entries import ConfigEntryState
from homeassistant.const import EVENT_HOMEASSISTANT_STARTED, STATE_UNKNOWN
from homeassistant.core import CoreState, HomeAssistant
from . import MOCK_DATA
from tests.common import MockConfigEntry
@@ -24,7 +26,8 @@ async def test_unload_entry(hass: HomeAssistant) -> None:
config_entry.add_to_hass(hass)
with patch(
"homeassistant.components.fastdotcom.coordinator.fast_com", return_value=5.0
"homeassistant.components.fastdotcom.coordinator.fast_com",
return_value=MOCK_DATA,
):
await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done()
@@ -59,13 +62,13 @@ async def test_delayed_speedtest_during_startup(
assert state.state is STATE_UNKNOWN
with patch(
"homeassistant.components.fastdotcom.coordinator.fast_com", return_value=5.0
"homeassistant.components.fastdotcom.coordinator.fast_com",
return_value=MOCK_DATA,
):
hass.bus.async_fire(EVENT_HOMEASSISTANT_STARTED)
await hass.async_block_till_done()
state = hass.states.get("sensor.fast_com_download")
assert state is not None
assert state.state == "5.0"
assert state.state == "100.0"
assert config_entry.state is ConfigEntryState.LOADED
+5 -2
View File
@@ -7,6 +7,8 @@ from freezegun.api import FrozenDateTimeFactory
from homeassistant.components.fastdotcom.const import DEFAULT_NAME, DOMAIN
from homeassistant.core import HomeAssistant
from . import MOCK_DATA
from tests.common import MockConfigEntry
@@ -22,11 +24,12 @@ async def test_fastdotcom_data_update_coordinator(
config_entry.add_to_hass(hass)
with patch(
"homeassistant.components.fastdotcom.coordinator.fast_com", return_value=5.0
"homeassistant.components.fastdotcom.coordinator.fast_com",
return_value=MOCK_DATA,
):
await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done()
state = hass.states.get("sensor.fast_com_download")
assert state is not None
assert state.state == "5.0"
assert state.state == "100.0"