Ensure the purge entities service cleans up the states_meta table (#109344)

This commit is contained in:
J. Nick Koston 2024-02-02 02:32:17 -06:00 committed by GitHub
parent 2788576dc9
commit 67e6febde4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 0 deletions

View File

@ -794,4 +794,6 @@ def purge_entity_data(
_LOGGER.debug("Purging entity data hasn't fully completed yet")
return False
_purge_old_entity_ids(instance, session)
return True

View File

@ -1424,6 +1424,18 @@ async def test_purge_entities(
)
assert states_sensor_kept.count() == 10
# sensor.keep should remain in the StatesMeta table
states_meta_remain = session.query(StatesMeta).filter(
StatesMeta.entity_id == "sensor.keep"
)
assert states_meta_remain.count() == 1
# sensor.purge_entity should be removed from the StatesMeta table
states_meta_remain = session.query(StatesMeta).filter(
StatesMeta.entity_id == "sensor.purge_entity"
)
assert states_meta_remain.count() == 0
_add_purge_records(hass)
# Confirm calling service without arguments matches all records (default filter behavior)
@ -1437,6 +1449,10 @@ async def test_purge_entities(
states = session.query(States)
assert states.count() == 0
# The states_meta table should be empty
states_meta_remain = session.query(StatesMeta)
assert states_meta_remain.count() == 0
async def _add_test_states(hass: HomeAssistant, wait_recording_done: bool = True):
"""Add multiple states to the db for testing."""