from __future__ import annotations from datetime import datetime, timezone from django.test import SimpleTestCase from pobsync.retention import Snapshot, build_retention_plan class RetentionTests(SimpleTestCase): def test_always_keeps_newest_snapshot(self) -> None: snapshots = [ Snapshot("scheduled", "old", "/x/old", datetime(2026, 5, 18, tzinfo=timezone.utc), "success", None), Snapshot("scheduled", "new", "/x/new", datetime(2026, 5, 19, tzinfo=timezone.utc), "failed", None), ] plan = build_retention_plan( snapshots, retention={"daily": 0, "weekly": 0, "monthly": 0, "yearly": 0}, now=datetime(2026, 5, 19, tzinfo=timezone.utc), ) self.assertEqual(plan.keep, {"new"}) self.assertEqual(plan.reasons["new"], ["newest"])