Merge pull request 'feat(issue-filing): harden final report proofs for handoff and mutations (closes #191)' (#241) from feat/issue-191-issue-filing-reports into master
This commit was merged in pull request #241.
This commit is contained in:
@@ -33,6 +33,9 @@ from review_proofs import ( # noqa: E402
|
||||
assess_empty_queue_report,
|
||||
assess_fresh_issue_selection,
|
||||
assess_inventory_completeness,
|
||||
assess_issue_filing_final_report,
|
||||
assess_issue_filing_mutation_capability,
|
||||
assess_issue_filing_sha_evidence,
|
||||
assess_issue_selection_final_report,
|
||||
assess_queue_target_final_report,
|
||||
assess_reviewer_queue_inventory,
|
||||
@@ -1929,5 +1932,115 @@ class TestIssueSelectionContinuation(unittest.TestCase):
|
||||
self.assertEqual(result["grade"], "A")
|
||||
|
||||
|
||||
class TestIssueFilingFinalReport(unittest.TestCase):
|
||||
"""Issue #191: issue-filing runs need A-bar final report proofs."""
|
||||
|
||||
ISSUE_TITLE = (
|
||||
"Implement fail-closed continuation mode for issues already "
|
||||
"represented by open PRs"
|
||||
)
|
||||
FULL_SHA = "a4060c5de00f2b1c9e88f4f6f0f3f9a7b2c1d0e9"
|
||||
CAPABILITIES = {
|
||||
"create_issue": {
|
||||
"requested_task": "create_issue",
|
||||
"required_operation_permission": "gitea.issue.create",
|
||||
"allowed_in_current_session": True,
|
||||
},
|
||||
}
|
||||
CLOSEST = [{"number": 183, "title": "Harden author-run reporting", "state": "open"}]
|
||||
|
||||
def _good_report(self, *, sha_line=None):
|
||||
lines = [
|
||||
"Created Gitea-Tools #189 — "
|
||||
f"`{self.ISSUE_TITLE}`",
|
||||
"Duplicate check: searched 12 open issues.",
|
||||
"Closest existing: #183 — Harden author-run reporting "
|
||||
"(update rejected — different scope).",
|
||||
"Why new issue justified: continuation mode is distinct from #183.",
|
||||
"Only mutation: issue creation (gitea.issue.create).",
|
||||
"Confirm no labels, comments, PRs, reviews, merges, or closes.",
|
||||
"## Controller Handoff",
|
||||
"- Task: file issue",
|
||||
"- Repo: Scaled-Tech-Consulting/Gitea-Tools",
|
||||
"- Role: author",
|
||||
"- Identity: prgs-author",
|
||||
"- Issue/PR: #189",
|
||||
"- Branch/SHA: n/a",
|
||||
"- Files changed: none",
|
||||
"- Validation: duplicate gate + create_issue capability resolved",
|
||||
"- Mutations: create_issue via gitea.issue.create",
|
||||
"- Workspace mutations: none",
|
||||
"- Current status: issue created",
|
||||
"- Blockers: none",
|
||||
"- Next: implementation",
|
||||
"- Safety: no review/merge",
|
||||
"- Issue created or updated: created #189",
|
||||
"- Related issues: #183, #188",
|
||||
]
|
||||
if sha_line:
|
||||
lines.insert(4, sha_line)
|
||||
return "\n".join(lines)
|
||||
|
||||
def test_complete_issue_filing_report_earns_a(self):
|
||||
result = assess_issue_filing_final_report(
|
||||
self._good_report(),
|
||||
issue_number=189,
|
||||
issue_title=self.ISSUE_TITLE,
|
||||
action="created",
|
||||
mutations=["create_issue"],
|
||||
resolved_capabilities=self.CAPABILITIES,
|
||||
issues_searched=12,
|
||||
closest_matches=self.CLOSEST,
|
||||
performed_mutations=["create_issue"],
|
||||
)
|
||||
self.assertEqual(result["grade"], "A")
|
||||
self.assertFalse(result["downgraded"])
|
||||
|
||||
def test_missing_controller_handoff_downgrades(self):
|
||||
report = self._good_report().replace("## Controller Handoff", "")
|
||||
result = assess_issue_filing_final_report(
|
||||
report,
|
||||
issue_number=189,
|
||||
issue_title=self.ISSUE_TITLE,
|
||||
mutations=["create_issue"],
|
||||
resolved_capabilities=self.CAPABILITIES,
|
||||
issues_searched=12,
|
||||
performed_mutations=["create_issue"],
|
||||
)
|
||||
self.assertTrue(result["downgraded"])
|
||||
|
||||
def test_abbreviated_sha_downgrades(self):
|
||||
result = assess_issue_filing_sha_evidence(
|
||||
f"old head: {self.FULL_SHA[:7]}"
|
||||
)
|
||||
self.assertTrue(result["downgraded"])
|
||||
|
||||
def test_mutation_without_capability_proof_downgrades(self):
|
||||
report = self._good_report().replace("gitea.issue.create", "allowed")
|
||||
result = assess_issue_filing_mutation_capability(
|
||||
report,
|
||||
["create_issue"],
|
||||
self.CAPABILITIES,
|
||||
)
|
||||
self.assertTrue(result["downgraded"])
|
||||
|
||||
def test_label_mutation_without_label_proof_downgrades(self):
|
||||
caps = {
|
||||
"set_issue_labels": {
|
||||
"requested_task": "set_issue_labels",
|
||||
"required_operation_permission": "gitea.issue.comment",
|
||||
"allowed_in_current_session": True,
|
||||
},
|
||||
}
|
||||
report = "\n".join([
|
||||
"Updated labels with gitea.issue.comment capability resolved.",
|
||||
"Only mutations: set_issue_labels",
|
||||
])
|
||||
result = assess_issue_filing_mutation_capability(
|
||||
report, ["set_issue_labels"], caps
|
||||
)
|
||||
self.assertTrue(result["downgraded"])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user