Remove restore functionality in Speedtest.net (#96950)
This commit is contained in:
parent
f9ce315d1b
commit
458a3f0df2
4 changed files with 6 additions and 71 deletions
|
@ -15,7 +15,6 @@ from homeassistant.const import UnitOfDataRate, UnitOfTime
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
|
from homeassistant.helpers.device_registry import DeviceEntryType, DeviceInfo
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
from homeassistant.helpers.restore_state import RestoreEntity
|
|
||||||
from homeassistant.helpers.typing import StateType
|
from homeassistant.helpers.typing import StateType
|
||||||
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
from homeassistant.helpers.update_coordinator import CoordinatorEntity
|
||||||
|
|
||||||
|
@ -77,10 +76,7 @@ async def async_setup_entry(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# pylint: disable-next=hass-invalid-inheritance # needs fixing
|
class SpeedtestSensor(CoordinatorEntity[SpeedTestDataCoordinator], SensorEntity):
|
||||||
class SpeedtestSensor(
|
|
||||||
CoordinatorEntity[SpeedTestDataCoordinator], RestoreEntity, SensorEntity
|
|
||||||
):
|
|
||||||
"""Implementation of a speedtest.net sensor."""
|
"""Implementation of a speedtest.net sensor."""
|
||||||
|
|
||||||
entity_description: SpeedtestSensorEntityDescription
|
entity_description: SpeedtestSensorEntityDescription
|
||||||
|
@ -134,9 +130,3 @@ class SpeedtestSensor(
|
||||||
self._attrs[ATTR_BYTES_SENT] = self.coordinator.data[ATTR_BYTES_SENT]
|
self._attrs[ATTR_BYTES_SENT] = self.coordinator.data[ATTR_BYTES_SENT]
|
||||||
|
|
||||||
return self._attrs
|
return self._attrs
|
||||||
|
|
||||||
async def async_added_to_hass(self) -> None:
|
|
||||||
"""Handle entity which will be added."""
|
|
||||||
await super().async_added_to_hass()
|
|
||||||
if state := await self.async_get_last_state():
|
|
||||||
self._state = state.state
|
|
||||||
|
|
|
@ -3,14 +3,12 @@ from unittest.mock import patch
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from . import MOCK_RESULTS, MOCK_SERVERS
|
from . import MOCK_SERVERS
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(autouse=True)
|
@pytest.fixture
|
||||||
def mock_api():
|
def mock_api():
|
||||||
"""Mock entry setup."""
|
"""Mock entry setup."""
|
||||||
with patch("speedtest.Speedtest") as mock_api:
|
with patch("speedtest.Speedtest") as mock_api:
|
||||||
mock_api.return_value.get_servers.return_value = MOCK_SERVERS
|
mock_api.return_value.get_servers.return_value = MOCK_SERVERS
|
||||||
mock_api.return_value.get_best_server.return_value = MOCK_SERVERS[1][0]
|
|
||||||
mock_api.return_value.results.dict.return_value = MOCK_RESULTS
|
|
||||||
yield mock_api
|
yield mock_api
|
||||||
|
|
|
@ -5,11 +5,7 @@ from unittest.mock import MagicMock
|
||||||
|
|
||||||
import speedtest
|
import speedtest
|
||||||
|
|
||||||
from homeassistant.components.speedtestdotnet.const import (
|
from homeassistant.components.speedtestdotnet.const import DOMAIN
|
||||||
CONF_SERVER_ID,
|
|
||||||
CONF_SERVER_NAME,
|
|
||||||
DOMAIN,
|
|
||||||
)
|
|
||||||
from homeassistant.config_entries import ConfigEntryState
|
from homeassistant.config_entries import ConfigEntryState
|
||||||
from homeassistant.const import STATE_UNAVAILABLE
|
from homeassistant.const import STATE_UNAVAILABLE
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
|
@ -18,25 +14,6 @@ import homeassistant.util.dt as dt_util
|
||||||
from tests.common import MockConfigEntry, async_fire_time_changed
|
from tests.common import MockConfigEntry, async_fire_time_changed
|
||||||
|
|
||||||
|
|
||||||
async def test_successful_config_entry(hass: HomeAssistant) -> None:
|
|
||||||
"""Test that SpeedTestDotNet is configured successfully."""
|
|
||||||
|
|
||||||
entry = MockConfigEntry(
|
|
||||||
domain=DOMAIN,
|
|
||||||
data={},
|
|
||||||
options={
|
|
||||||
CONF_SERVER_NAME: "Country1 - Sponsor1 - Server1",
|
|
||||||
CONF_SERVER_ID: "1",
|
|
||||||
},
|
|
||||||
)
|
|
||||||
entry.add_to_hass(hass)
|
|
||||||
|
|
||||||
await hass.config_entries.async_setup(entry.entry_id)
|
|
||||||
|
|
||||||
assert entry.state == ConfigEntryState.LOADED
|
|
||||||
assert hass.data[DOMAIN]
|
|
||||||
|
|
||||||
|
|
||||||
async def test_setup_failed(hass: HomeAssistant, mock_api: MagicMock) -> None:
|
async def test_setup_failed(hass: HomeAssistant, mock_api: MagicMock) -> None:
|
||||||
"""Test SpeedTestDotNet failed due to an error."""
|
"""Test SpeedTestDotNet failed due to an error."""
|
||||||
|
|
||||||
|
|
|
@ -3,11 +3,11 @@ from unittest.mock import MagicMock
|
||||||
|
|
||||||
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
|
from homeassistant.components.sensor import DOMAIN as SENSOR_DOMAIN
|
||||||
from homeassistant.components.speedtestdotnet import DOMAIN
|
from homeassistant.components.speedtestdotnet import DOMAIN
|
||||||
from homeassistant.core import HomeAssistant, State
|
from homeassistant.core import HomeAssistant
|
||||||
|
|
||||||
from . import MOCK_RESULTS, MOCK_SERVERS, MOCK_STATES
|
from . import MOCK_RESULTS, MOCK_SERVERS, MOCK_STATES
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, mock_restore_cache
|
from tests.common import MockConfigEntry
|
||||||
|
|
||||||
|
|
||||||
async def test_speedtestdotnet_sensors(
|
async def test_speedtestdotnet_sensors(
|
||||||
|
@ -36,33 +36,3 @@ async def test_speedtestdotnet_sensors(
|
||||||
sensor = hass.states.get("sensor.speedtest_ping")
|
sensor = hass.states.get("sensor.speedtest_ping")
|
||||||
assert sensor
|
assert sensor
|
||||||
assert sensor.state == MOCK_STATES["ping"]
|
assert sensor.state == MOCK_STATES["ping"]
|
||||||
|
|
||||||
|
|
||||||
async def test_restore_last_state(hass: HomeAssistant, mock_api: MagicMock) -> None:
|
|
||||||
"""Test restoring last state for sensors."""
|
|
||||||
mock_restore_cache(
|
|
||||||
hass,
|
|
||||||
[
|
|
||||||
State(f"sensor.speedtest_{sensor}", state)
|
|
||||||
for sensor, state in MOCK_STATES.items()
|
|
||||||
],
|
|
||||||
)
|
|
||||||
entry = MockConfigEntry(domain=DOMAIN)
|
|
||||||
entry.add_to_hass(hass)
|
|
||||||
|
|
||||||
await hass.config_entries.async_setup(entry.entry_id)
|
|
||||||
await hass.async_block_till_done()
|
|
||||||
|
|
||||||
assert len(hass.states.async_entity_ids(SENSOR_DOMAIN)) == 3
|
|
||||||
|
|
||||||
sensor = hass.states.get("sensor.speedtest_ping")
|
|
||||||
assert sensor
|
|
||||||
assert sensor.state == MOCK_STATES["ping"]
|
|
||||||
|
|
||||||
sensor = hass.states.get("sensor.speedtest_download")
|
|
||||||
assert sensor
|
|
||||||
assert sensor.state == MOCK_STATES["download"]
|
|
||||||
|
|
||||||
sensor = hass.states.get("sensor.speedtest_ping")
|
|
||||||
assert sensor
|
|
||||||
assert sensor.state == MOCK_STATES["ping"]
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue