Stop PR queue advancement when infra_stop blocks capability and require CONTROL-CHECKOUT REPAIR MODE handoffs with infra diagnostics. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
106 lines
3.6 KiB
Python
106 lines
3.6 KiB
Python
"""Tests for infra-stop repair handoff verifier (#289)."""
|
|
import sys
|
|
import unittest
|
|
from pathlib import Path
|
|
|
|
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
|
|
|
from capability_stop_terminal import TERMINAL_REPORT_HEADING
|
|
from reviewer_infra_stop_handoff import assess_infra_stop_handoff_report # noqa: E402
|
|
|
|
|
|
def _repair_handoff() -> str:
|
|
return "\n".join([
|
|
TERMINAL_REPORT_HEADING,
|
|
"Repair handoff for infra_stop blocked reviewer workflow.",
|
|
"CONTROL-CHECKOUT REPAIR MODE",
|
|
"MCP process root: /Users/dev/Gitea-Tools",
|
|
"Inspected git root: /Users/dev/Gitea-Tools",
|
|
"Conflict marker path: gitea_mcp_server.py",
|
|
"Merge/rebase control path: none",
|
|
"Safe next repair action: resolve conflict markers and restart MCP",
|
|
"infra_stop: true",
|
|
])
|
|
|
|
|
|
class TestInfraStopHandoff(unittest.TestCase):
|
|
def test_repair_handoff_passes(self):
|
|
result = assess_infra_stop_handoff_report(
|
|
_repair_handoff(),
|
|
stop_session={
|
|
"infra_stop": True,
|
|
"infra_stop_assessment": {
|
|
"infra_stop": True,
|
|
"conflict_file": "gitea_mcp_server.py",
|
|
},
|
|
},
|
|
)
|
|
self.assertTrue(result["proven"], result["reasons"])
|
|
|
|
def test_next_pr_selection_blocks(self):
|
|
report = "\n".join([
|
|
TERMINAL_REPORT_HEADING,
|
|
"Next eligible PR to review: PR #276",
|
|
"Pinned review head SHA: abc123",
|
|
])
|
|
result = assess_infra_stop_handoff_report(
|
|
report,
|
|
stop_session={"infra_stop": True, "require_infra_diagnostics": False},
|
|
)
|
|
self.assertFalse(result["proven"])
|
|
self.assertTrue(any("queue" in r.lower() for r in result["reasons"]))
|
|
|
|
def test_missing_repair_handoff_blocks(self):
|
|
result = assess_infra_stop_handoff_report(
|
|
"Validation result: pass\nReview summary for PR #276",
|
|
stop_session={"infra_stop": True},
|
|
)
|
|
self.assertFalse(result["proven"])
|
|
|
|
def test_main_checkout_diagnostics_without_label_blocks(self):
|
|
report = "\n".join([
|
|
TERMINAL_REPORT_HEADING,
|
|
"Repair handoff",
|
|
"Ran git status in main checkout for MCP diagnostics.",
|
|
])
|
|
result = assess_infra_stop_handoff_report(
|
|
report,
|
|
stop_session={
|
|
"infra_stop": True,
|
|
"main_checkout_diagnostics": True,
|
|
"require_infra_diagnostics": False,
|
|
},
|
|
)
|
|
self.assertFalse(result["proven"])
|
|
self.assertTrue(any("control-checkout" in r.lower() for r in result["reasons"]))
|
|
|
|
def test_background_scheduling_blocks(self):
|
|
report = "\n".join([
|
|
TERMINAL_REPORT_HEADING,
|
|
"Repair handoff",
|
|
"Used schedule/manage_task while waiting for MCP recovery.",
|
|
])
|
|
result = assess_infra_stop_handoff_report(
|
|
report,
|
|
stop_session={"infra_stop": True, "require_infra_diagnostics": False},
|
|
)
|
|
self.assertFalse(result["proven"])
|
|
self.assertTrue(any("schedule" in r.lower() for r in result["reasons"]))
|
|
|
|
def test_non_infra_stop_skips(self):
|
|
result = assess_infra_stop_handoff_report(
|
|
"Selected PR #1 for review",
|
|
stop_session={"infra_stop": False},
|
|
)
|
|
self.assertTrue(result["proven"])
|
|
|
|
|
|
class TestExport(unittest.TestCase):
|
|
def test_review_proofs_reexport(self):
|
|
from review_proofs import assess_infra_stop_handoff_report as exported
|
|
|
|
self.assertTrue(callable(exported))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main() |