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