mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 21:57:51 +00:00
Slow down polling in Tesla Fleet (#142130)
* Slow down polling * Fix tests
This commit is contained in:
parent
471b05ff4b
commit
88455702bb
@ -27,7 +27,7 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
from .const import ENERGY_HISTORY_FIELDS, LOGGER, TeslaFleetState
|
from .const import ENERGY_HISTORY_FIELDS, LOGGER, TeslaFleetState
|
||||||
|
|
||||||
VEHICLE_INTERVAL_SECONDS = 300
|
VEHICLE_INTERVAL_SECONDS = 600
|
||||||
VEHICLE_INTERVAL = timedelta(seconds=VEHICLE_INTERVAL_SECONDS)
|
VEHICLE_INTERVAL = timedelta(seconds=VEHICLE_INTERVAL_SECONDS)
|
||||||
VEHICLE_WAIT = timedelta(minutes=15)
|
VEHICLE_WAIT = timedelta(minutes=15)
|
||||||
|
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
"""Test the Tesla Fleet init."""
|
"""Test the Tesla Fleet init."""
|
||||||
|
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
|
from datetime import timedelta
|
||||||
from unittest.mock import AsyncMock, patch
|
from unittest.mock import AsyncMock, patch
|
||||||
|
|
||||||
from aiohttp import RequestInfo
|
from aiohttp import RequestInfo
|
||||||
@ -231,57 +232,58 @@ async def test_vehicle_sleep(
|
|||||||
freezer: FrozenDateTimeFactory,
|
freezer: FrozenDateTimeFactory,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test coordinator refresh with an error."""
|
"""Test coordinator refresh with an error."""
|
||||||
await setup_platform(hass, normal_config_entry)
|
|
||||||
assert mock_vehicle_data.call_count == 1
|
|
||||||
|
|
||||||
freezer.tick(VEHICLE_WAIT + VEHICLE_INTERVAL)
|
TEST_INTERVAL = timedelta(seconds=120)
|
||||||
async_fire_time_changed(hass)
|
|
||||||
# Let vehicle sleep, no updates for 15 minutes
|
|
||||||
await hass.async_block_till_done()
|
|
||||||
assert mock_vehicle_data.call_count == 2
|
|
||||||
|
|
||||||
freezer.tick(VEHICLE_INTERVAL)
|
with patch(
|
||||||
async_fire_time_changed(hass)
|
"homeassistant.components.tesla_fleet.coordinator.VEHICLE_INTERVAL",
|
||||||
# No polling, call_count should not increase
|
TEST_INTERVAL,
|
||||||
await hass.async_block_till_done()
|
):
|
||||||
assert mock_vehicle_data.call_count == 2
|
await setup_platform(hass, normal_config_entry)
|
||||||
|
assert mock_vehicle_data.call_count == 1
|
||||||
|
|
||||||
freezer.tick(VEHICLE_INTERVAL)
|
freezer.tick(VEHICLE_WAIT + TEST_INTERVAL)
|
||||||
async_fire_time_changed(hass)
|
async_fire_time_changed(hass)
|
||||||
# No polling, call_count should not increase
|
# Let vehicle sleep, no updates for 15 minutes
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
assert mock_vehicle_data.call_count == 2
|
assert mock_vehicle_data.call_count == 2
|
||||||
|
|
||||||
freezer.tick(VEHICLE_WAIT)
|
freezer.tick(TEST_INTERVAL)
|
||||||
async_fire_time_changed(hass)
|
async_fire_time_changed(hass)
|
||||||
# Vehicle didn't sleep, go back to normal
|
# No polling, call_count should not increase
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
assert mock_vehicle_data.call_count == 3
|
assert mock_vehicle_data.call_count == 2
|
||||||
|
|
||||||
freezer.tick(VEHICLE_INTERVAL)
|
freezer.tick(VEHICLE_WAIT)
|
||||||
async_fire_time_changed(hass)
|
async_fire_time_changed(hass)
|
||||||
# Regular polling
|
# Vehicle didn't sleep, go back to normal
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
assert mock_vehicle_data.call_count == 4
|
assert mock_vehicle_data.call_count == 3
|
||||||
|
|
||||||
mock_vehicle_data.return_value = VEHICLE_DATA_ALT
|
freezer.tick(TEST_INTERVAL)
|
||||||
freezer.tick(VEHICLE_INTERVAL)
|
async_fire_time_changed(hass)
|
||||||
async_fire_time_changed(hass)
|
# Regular polling
|
||||||
# Vehicle active
|
await hass.async_block_till_done()
|
||||||
await hass.async_block_till_done()
|
assert mock_vehicle_data.call_count == 4
|
||||||
assert mock_vehicle_data.call_count == 5
|
|
||||||
|
|
||||||
freezer.tick(VEHICLE_WAIT)
|
mock_vehicle_data.return_value = VEHICLE_DATA_ALT
|
||||||
async_fire_time_changed(hass)
|
freezer.tick(TEST_INTERVAL)
|
||||||
# Dont let sleep when active
|
async_fire_time_changed(hass)
|
||||||
await hass.async_block_till_done()
|
# Vehicle active
|
||||||
assert mock_vehicle_data.call_count == 6
|
await hass.async_block_till_done()
|
||||||
|
assert mock_vehicle_data.call_count == 5
|
||||||
|
|
||||||
freezer.tick(VEHICLE_WAIT)
|
freezer.tick(TEST_INTERVAL)
|
||||||
async_fire_time_changed(hass)
|
async_fire_time_changed(hass)
|
||||||
# Dont let sleep when active
|
# Dont let sleep when active
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
assert mock_vehicle_data.call_count == 7
|
assert mock_vehicle_data.call_count == 6
|
||||||
|
|
||||||
|
freezer.tick(TEST_INTERVAL)
|
||||||
|
async_fire_time_changed(hass)
|
||||||
|
# Dont let sleep when active
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
assert mock_vehicle_data.call_count == 7
|
||||||
|
|
||||||
|
|
||||||
# Test Energy Live Coordinator
|
# Test Energy Live Coordinator
|
||||||
|
Loading…
x
Reference in New Issue
Block a user