feat: DoX assessment recording and soft visibility (STATE-WP-0077)
Add quality_doc/dor/dod recording convention, quality-debt CLI, promote-intake and C-34 soft warnings, agent protocol notes, and DoD policy badge language. Mark STATE-WP-0077 finished.
This commit is contained in:
parent
d356fde41c
commit
fe4cfe22c9
13 changed files with 786 additions and 103 deletions
73
tests/test_quality_assessment.py
Normal file
73
tests/test_quality_assessment.py
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
"""Unit tests for DoX quality assessment helpers (STATE-WP-0077)."""
|
||||
from __future__ import annotations
|
||||
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "scripts"))
|
||||
|
||||
from quality_assessment import ( # noqa: E402
|
||||
assessment_from_mapping,
|
||||
badge,
|
||||
debt_for_intake_meta,
|
||||
debt_for_workplan_meta,
|
||||
intake_has_doc_ok,
|
||||
is_ok,
|
||||
progress_event_body,
|
||||
)
|
||||
|
||||
|
||||
def test_badge_ok_failed():
|
||||
assert badge("DoR", "Ok") == "DoR-Ok"
|
||||
assert badge("DoC", "Failed") == "DoC-Failed"
|
||||
assert badge("DoD", "DoD-Ok") == "DoD-Ok"
|
||||
|
||||
|
||||
def test_assessment_from_mapping():
|
||||
assert assessment_from_mapping({"quality_dor": "DoR-Ok"}, "DoR") == "DoR-Ok"
|
||||
assert assessment_from_mapping({"quality_dor": "Ok"}, "DoR") == "DoR-Ok"
|
||||
assert assessment_from_mapping({}, "DoR") is None
|
||||
assert is_ok(assessment_from_mapping({"quality_dod": "Failed"}, "DoD")) is False
|
||||
|
||||
|
||||
def test_debt_ready_without_dor():
|
||||
items = debt_for_workplan_meta(
|
||||
{"id": "STATE-WP-0001", "status": "ready"},
|
||||
path="workplans/x.md",
|
||||
)
|
||||
assert len(items) == 1
|
||||
assert items[0].missing == "DoR-Ok"
|
||||
|
||||
|
||||
def test_debt_finished_without_dod():
|
||||
items = debt_for_workplan_meta(
|
||||
{"id": "STATE-WP-0001", "status": "finished", "quality_dod": "DoD-Ok"},
|
||||
path="workplans/x.md",
|
||||
)
|
||||
assert items == []
|
||||
|
||||
|
||||
def test_debt_intake_routed():
|
||||
items = debt_for_intake_meta(
|
||||
{"id": "CUST-IN-0001", "status": "routed"},
|
||||
path="notes.md",
|
||||
)
|
||||
assert len(items) == 1
|
||||
assert items[0].missing == "DoC-Ok"
|
||||
|
||||
|
||||
def test_intake_has_doc_ok_from_note():
|
||||
assert intake_has_doc_ok({"notes": [{"content": "Assessed DoC-Ok today"}]})
|
||||
assert not intake_has_doc_ok({"notes": [{"content": "still open"}]})
|
||||
|
||||
|
||||
def test_progress_event_body():
|
||||
body = progress_event_body(
|
||||
policy="DoR",
|
||||
outcome="Ok",
|
||||
record_kind="workplan",
|
||||
record_id="STATE-WP-0077",
|
||||
assessed_by="grok",
|
||||
)
|
||||
assert body["event_type"] == "quality_assessment"
|
||||
assert body["detail"]["badge"] == "DoR-Ok"
|
||||
Loading…
Add table
Add a link
Reference in a new issue