Fix history startup failures (#151439)

pull/151390/head^2
Brett Adams 2025-09-01 17:48:49 +10:00 committed by GitHub
parent cf31401cc2
commit 41f33a106f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 36 additions and 29 deletions

View File

@ -179,7 +179,6 @@ async def async_setup_entry(hass: HomeAssistant, entry: TeslaFleetConfigEntry) -
)
await live_coordinator.async_config_entry_first_refresh()
await history_coordinator.async_config_entry_first_refresh()
await info_coordinator.async_config_entry_first_refresh()
# Create energy site model

View File

@ -55,7 +55,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_battery_charged-statealt]
@ -130,7 +130,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_battery_discharged-statealt]
@ -205,7 +205,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '30.06',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_battery_exported-statealt]
@ -280,7 +280,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_battery_imported_from_generator-statealt]
@ -355,7 +355,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.08',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_battery_imported_from_grid-statealt]
@ -430,7 +430,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '43.6',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_battery_imported_from_solar-statealt]
@ -580,7 +580,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '30.022',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_consumer_imported_from_battery-statealt]
@ -655,7 +655,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_consumer_imported_from_generator-statealt]
@ -730,7 +730,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '1.282',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_consumer_imported_from_grid-statealt]
@ -805,7 +805,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '30.96',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_consumer_imported_from_solar-statealt]
@ -955,7 +955,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.001',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_generator_exported-statealt]
@ -1105,7 +1105,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_grid_exported-statealt]
@ -1180,7 +1180,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.048',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_grid_exported_from_battery-statealt]
@ -1255,7 +1255,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_grid_exported_from_generator-statealt]
@ -1330,7 +1330,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '127.32',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_grid_exported_from_solar-statealt]
@ -1405,7 +1405,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '1.542',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_grid_imported-statealt]
@ -1555,7 +1555,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0106171875',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_grid_services_exported-statealt]
@ -1630,7 +1630,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0450625',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_grid_services_imported-statealt]
@ -1865,7 +1865,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_home_usage-statealt]
@ -2087,7 +2087,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '211.88',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_solar_exported-statealt]
@ -2162,7 +2162,7 @@
'last_changed': <ANY>,
'last_reported': <ANY>,
'last_updated': <ANY>,
'state': '0.0',
'state': 'unknown',
})
# ---
# name: test_sensors[sensor.energy_site_solar_generated-statealt]

View File

@ -317,18 +317,26 @@ async def test_energy_site_refresh_error(
# Test Energy History Coordinator
@pytest.mark.parametrize(("side_effect", "state"), ERRORS)
@pytest.mark.parametrize(("side_effect"), [side_effect for side_effect, _ in ERRORS])
async def test_energy_history_refresh_error(
hass: HomeAssistant,
normal_config_entry: MockConfigEntry,
mock_energy_history: AsyncMock,
side_effect: TeslaFleetError,
state: ConfigEntryState,
freezer: FrozenDateTimeFactory,
) -> None:
"""Test coordinator refresh with an error."""
mock_energy_history.side_effect = side_effect
await setup_platform(hass, normal_config_entry)
assert normal_config_entry.state is state
assert normal_config_entry.state is ConfigEntryState.LOADED
# Now test that the coordinator handles errors during refresh
mock_energy_history.side_effect = side_effect
freezer.tick(ENERGY_HISTORY_INTERVAL)
async_fire_time_changed(hass)
await hass.async_block_till_done()
# The coordinator should handle the error gracefully
assert normal_config_entry.state is ConfigEntryState.LOADED
async def test_energy_live_refresh_ratelimited(
@ -410,20 +418,20 @@ async def test_energy_history_refresh_ratelimited(
async_fire_time_changed(hass)
await hass.async_block_till_done()
assert mock_energy_history.call_count == 2
assert mock_energy_history.call_count == 1
freezer.tick(ENERGY_HISTORY_INTERVAL)
async_fire_time_changed(hass)
await hass.async_block_till_done()
# Should not call for another 10 seconds
assert mock_energy_history.call_count == 2
assert mock_energy_history.call_count == 1
freezer.tick(ENERGY_HISTORY_INTERVAL)
async_fire_time_changed(hass)
await hass.async_block_till_done()
assert mock_energy_history.call_count == 3
assert mock_energy_history.call_count == 2
async def test_init_region_issue(