add more tests for snapshot cleaning
This commit is contained in:
@@ -183,3 +183,111 @@ class TestDataset:
|
||||
Snapshot, "destroy", lambda snapshot: validate_snapshot_selection(snapshot)
|
||||
):
|
||||
dataset._clean_old_snapshots_for_interval("daily", 999)
|
||||
|
||||
def test__clean_old_snapshots_for_interval_2(self):
|
||||
def validate_snapshot_selection(snapshot: Snapshot):
|
||||
nonlocal counter
|
||||
print(snapshot)
|
||||
str(snapshot).startswith("tank/ROOT@")
|
||||
counter = counter + 1
|
||||
|
||||
snapshots = gen_snapshots_for_tank_ROOT()
|
||||
MAX_COUNT = 30
|
||||
with mock.patch.object(Dataset, "snapshots", snapshots):
|
||||
with mock.patch.object(
|
||||
Snapshot,
|
||||
"destroy",
|
||||
lambda snapshot: validate_snapshot_selection(snapshot),
|
||||
):
|
||||
ds = Dataset.from_string("tank/ROOT")
|
||||
|
||||
counter = 0
|
||||
ds._clean_old_snapshots_for_interval("monthly", MAX_COUNT)
|
||||
assert counter <= MAX_COUNT # not enough snapshots to reach MAX_COUNT
|
||||
|
||||
counter = 0
|
||||
ds._clean_old_snapshots_for_interval("daily", MAX_COUNT)
|
||||
assert counter == MAX_COUNT
|
||||
|
||||
|
||||
def gen_snapshots_for_tank_ROOT() -> list[Snapshot]:
|
||||
return [
|
||||
Snapshot.from_string(line) for line in SNAPSHOTS.split("\n") if line.strip()
|
||||
]
|
||||
|
||||
|
||||
SNAPSHOTS = """
|
||||
tank/ROOT@znap_2021-11-30-2300_monthly
|
||||
tank/ROOT@znap_2021-12-31-2300_monthly
|
||||
tank/ROOT@znap_2022-01-31-2300_monthly
|
||||
tank/ROOT@znap_2022-02-28-2300_monthly
|
||||
tank/ROOT@znap_2022-03-13-2300_weekly
|
||||
tank/ROOT@znap_2022-03-20-2300_weekly
|
||||
tank/ROOT@znap_2022-03-27-2200_weekly
|
||||
tank/ROOT@znap_2022-03-31-2200_monthly
|
||||
tank/ROOT@znap_2022-04-03-2200_weekly
|
||||
tank/ROOT@znap_2022-04-03-2200_daily
|
||||
tank/ROOT@znap_2022-04-04-2200_daily
|
||||
tank/ROOT@znap_2022-04-05-2200_daily
|
||||
tank/ROOT@znap_2022-04-06-2200_daily
|
||||
tank/ROOT@znap_2022-04-07-2200_daily
|
||||
tank/ROOT@znap_2022-04-08-2200_daily
|
||||
tank/ROOT@znap_2022-04-09-2200_daily
|
||||
tank/ROOT@znap_2022-04-10-2200_weekly
|
||||
tank/ROOT@znap_2022-04-10-2200_daily
|
||||
tank/ROOT@znap_2022-04-11-2200_daily
|
||||
tank/ROOT@znap_2022-04-12-2200_daily
|
||||
tank/ROOT@znap_2022-04-13-2200_daily
|
||||
tank/ROOT@znap_2022-04-14-2200_daily
|
||||
tank/ROOT@znap_2022-04-15-2200_daily
|
||||
tank/ROOT@znap_2022-04-16-2200_daily
|
||||
tank/ROOT@znap_2022-04-17-2200_daily
|
||||
tank/ROOT@znap_2022-04-17-2200_weekly
|
||||
tank/ROOT@znap_2022-04-18-2200_daily
|
||||
tank/ROOT@znap_2022-04-19-2200_daily
|
||||
tank/ROOT@znap_2022-04-20-2200_daily
|
||||
tank/ROOT@znap_2022-04-21-2200_daily
|
||||
tank/ROOT@znap_2022-04-22-2200_daily
|
||||
tank/ROOT@znap_2022-04-23-2200_daily
|
||||
tank/ROOT@znap_2022-04-24-2200_daily
|
||||
tank/ROOT@znap_2022-04-24-2200_weekly
|
||||
tank/ROOT@znap_2022-04-25-2200_daily
|
||||
tank/ROOT@znap_2022-04-26-2200_daily
|
||||
tank/ROOT@znap_2022-04-27-2200_daily
|
||||
tank/ROOT@znap_2022-04-28-2200_daily
|
||||
tank/ROOT@znap_2022-04-29-2200_daily
|
||||
tank/ROOT@znap_2022-04-30-2200_daily
|
||||
tank/ROOT@znap_2022-04-30-2200_monthly
|
||||
tank/ROOT@znap_2022-05-01-2200_daily
|
||||
tank/ROOT@znap_2022-05-01-2200_weekly
|
||||
tank/ROOT@znap_2022-05-02-2200_daily
|
||||
tank/ROOT@znap_2022-05-03-0900_hourly
|
||||
tank/ROOT@znap_2022-05-03-1000_hourly
|
||||
tank/ROOT@znap_2022-05-03-1100_hourly
|
||||
tank/ROOT@znap_2022-05-03-1200_hourly
|
||||
tank/ROOT@znap_2022-05-03-1300_hourly
|
||||
tank/ROOT@znap_2022-05-03-1400_hourly
|
||||
tank/ROOT@znap_2022-05-03-1500_hourly
|
||||
tank/ROOT@znap_2022-05-03-1600_hourly
|
||||
tank/ROOT@znap_2022-05-03-1700_hourly
|
||||
tank/ROOT@znap_2022-05-03-1800_hourly
|
||||
tank/ROOT@znap_2022-05-03-1900_hourly
|
||||
tank/ROOT@znap_2022-05-03-2000_hourly
|
||||
tank/ROOT@znap_2022-05-03-2100_hourly
|
||||
tank/ROOT@znap_2022-05-03-2200_hourly
|
||||
tank/ROOT@znap_2022-05-03-2200_daily
|
||||
tank/ROOT@znap_2022-05-03-2300_hourly
|
||||
tank/ROOT@znap_2022-05-04-0000_hourly
|
||||
tank/ROOT@znap_2022-05-04-0100_hourly
|
||||
tank/ROOT@znap_2022-05-04-0200_hourly
|
||||
tank/ROOT@znap_2022-05-04-0300_hourly
|
||||
tank/ROOT@znap_2022-05-04-0400_hourly
|
||||
tank/ROOT@znap_2022-05-04-0500_hourly
|
||||
tank/ROOT@znap_2022-05-04-0600_hourly
|
||||
tank/ROOT@znap_2022-05-04-0700_hourly
|
||||
tank/ROOT@znap_2022-05-04-0715_frequent
|
||||
tank/ROOT@znap_2022-05-04-0730_frequent
|
||||
tank/ROOT@znap_2022-05-04-0745_frequent
|
||||
tank/ROOT@znap_2022-05-04-0800_hourly
|
||||
tank/ROOT@znap_2022-05-04-0800_frequent
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user