Files
repo-scoping/tests/test_quality_criteria.py

54 lines
1.7 KiB
Python

from repo_scoping.acceptance import (
active_quality_criteria_version,
criteria_registry_markdown,
load_quality_criteria,
)
def test_quality_criteria_registry_is_versioned_and_reviewable():
registry = load_quality_criteria()
assert registry.schema_version == "quality-criteria-registry/v1"
assert registry.criteria_version == "repo-scoping-quality-criteria/v1"
assert registry.status == "active"
assert {criterion.id for criterion in registry.criteria} == {
"RREG-QC-001",
"RREG-QC-002",
"RREG-QC-003",
"RREG-QC-004",
"RREG-QC-005",
"RREG-QC-006",
"RREG-QC-007",
"RREG-QC-008",
}
for criterion in registry.criteria:
assert criterion.description
assert criterion.severity in {"low", "medium", "high", "critical"}
assert criterion.deterministic_action in {
"pass",
"requires_review",
"downgraded",
"rejected",
"invalidated",
"merged",
"flagged",
}
assert criterion.deterministic_action != "approve"
assert criterion.deterministic_action_when
assert criterion.reviewer_guidance
def test_quality_criteria_markdown_lists_transparent_review_guidance():
registry = load_quality_criteria()
markdown = criteria_registry_markdown(registry)
assert "# Quality Criteria Registry" in markdown
assert "RREG-QC-002: Native Utility Is Repo-Owned" in markdown
assert "Deterministic action: `downgraded`" in markdown
assert "Reviewer guidance:" in markdown
def test_active_quality_criteria_version_matches_registry():
assert active_quality_criteria_version() == "repo-scoping-quality-criteria/v1"