repo-manager/tests/test_retirement_disposition.py
tegwick 65b7919ec7 RMGR-WP-0019-T03: add read-only retirement disposition check
Re-ran the registrar suite on current source and pinned the three empty
duplicate Activity projections the receiving run refused, so the Activity
disposition can be verified before STATE-WP-0095-T04 applies it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 57383@bnt-lap001
Assistant-Session: ef71febe-2a37-4c34-a979-2508ca973c91
2026-10-06 09:56:54 +02:00

38 lines
1.2 KiB
Python

from repo_manager.retirement_disposition import (
PRESERVED_PARENT_UUIDS,
REFUSED_DUPLICATE_PROJECTIONS,
check_disposition,
)
EXACT = sorted(REFUSED_DUPLICATE_PROJECTIONS)
EMPTY = {u: 0 for u in EXACT}
def test_exact_empty_set_is_consistent():
assert check_disposition(EXACT, EMPTY) == []
def test_missing_projection_is_reported():
problems = check_disposition(EXACT[:2], EMPTY)
assert any("missing from disposition" in p for p in problems)
def test_preserved_parent_is_refused():
parent = next(iter(PRESERVED_PARENT_UUIDS))
problems = check_disposition(EXACT + [parent], EMPTY)
assert any("preserved source-bound parent" in p for p in problems)
def test_unknown_uuid_and_nonempty_projection_are_reported():
counts = dict(EMPTY, **{EXACT[0]: 3})
problems = check_disposition(EXACT + ["00000000-0000-0000-0000-000000000000"], counts)
assert any("not refused" in p for p in problems)
assert any("holds 3 tasks" in p for p in problems)
def test_unverified_task_counts_are_not_assumed_empty():
assert all("not verified" in p for p in check_disposition(EXACT))
def test_duplicates_are_reported():
assert "duplicate UUIDs" in check_disposition(EXACT + [EXACT[0].upper()], EMPTY)[0]