fix(backup): make last slice return a correct list

This commit is contained in:
Houkime 2024-08-07 12:35:34 +00:00
parent a5b52c8f75
commit b67777835d
3 changed files with 32 additions and 2 deletions

View file

@ -118,7 +118,7 @@ def do_autobackup() -> None:
def eligible_for_full_restoration(snap: Snapshot): def eligible_for_full_restoration(snap: Snapshot):
service = ServiceManager.get_service_by_id(Snapshot.service_name) service = ServiceManager.get_service_by_id(snap.service_name)
if service is None: if service is None:
return False return False
if service.is_enabled() is False: if service.is_enabled() is False:

View file

@ -102,4 +102,4 @@ class Backup:
def last_slice(self) -> typing.List[SnapshotInfo]: def last_slice(self) -> typing.List[SnapshotInfo]:
if not Backups.is_initted(): if not Backups.is_initted():
return [] return []
result = [snapshot_to_api(snap) for snap in which_snapshots_to_full_restore()] return [snapshot_to_api(snap) for snap in which_snapshots_to_full_restore()]

View file

@ -161,6 +161,18 @@ mutation TestForgetSnapshot($snapshot_id: String!) {
} }
""" """
API_LAST_SLICE_QUERY = """
lastSlice {
id
service {
id
displayName
}
createdAt
reason
}
"""
API_SNAPSHOTS_QUERY = """ API_SNAPSHOTS_QUERY = """
allSnapshots { allSnapshots {
id id
@ -349,6 +361,17 @@ def api_snapshots(authorized_client):
return result return result
def api_last_slice(authorized_client):
response = authorized_client.post(
"/graphql",
json={"query": generate_backup_query([API_LAST_SLICE_QUERY])},
)
data = get_data(response)
result = data["backup"]["lastSlice"]
assert result is not None
return result
def api_settings(authorized_client): def api_settings(authorized_client):
response = authorized_client.post( response = authorized_client.post(
"/graphql", "/graphql",
@ -633,3 +656,10 @@ def test_forget_nonexistent_snapshot(authorized_client, dummy_service, backups):
snaps = api_snapshots(authorized_client) snaps = api_snapshots(authorized_client)
assert len(snaps) == 0 assert len(snaps) == 0
def test_last_slice(authorized_client, only_dummy_service_and_api, backups):
api_manual_autobackup(authorized_client)
snaps = api_last_slice(authorized_client)
assert len(snaps) == 2