39 lines
1.2 KiB
Python
39 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]
|