mirror of
https://github.com/home-assistant/core.git
synced 2026-08-28 02:24:46 -05:00
Bump fastdotcom to 0.0.6 (#155354)
This commit is contained in:
@@ -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")
|
||||
|
||||
Generated
+1
-1
@@ -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
|
||||
|
||||
Generated
+1
-1
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user