repo-manager/tests/test_retirement_disposition.py

39 lines
1.2 KiB
Python
Raw Normal View History

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]