Fix history startup failures (#151439)
parent
cf31401cc2
commit
41f33a106f
|
@ -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
|
||||
|
|
|
@ -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]
|
||||
|
|
|
@ -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(
|
||||
|
|
Loading…
Reference in New Issue