diff --git a/tests/test_audit.py b/tests/test_audit.py index 6e118f2..f9a5f42 100644 --- a/tests/test_audit.py +++ b/tests/test_audit.py @@ -312,11 +312,15 @@ class TestGatedToolAudit(_AuditWiringBase): mock_api.side_effect = [ {"login": "reviewer-bot"}, self._pr("author-bot"), {"id": 7}, ] + from mcp_server import init_review_decision_lock, gitea_mark_final_review_decision + init_review_decision_lock("prgs", "review_pr") + gitea_mark_final_review_decision(8, "approve", remote="prgs") env = self._env(GITEA_PROFILE_NAME="gitea-reviewer", GITEA_ALLOWED_OPERATIONS="read,review,approve") with patch.dict(os.environ, env, clear=True): r = gitea_submit_pr_review(pr_number=8, action="approve", - body="LGTM", remote="prgs") + body="LGTM", remote="prgs", + final_review_decision_ready=True) self.assertTrue(r["performed"]) recs = self._records() self.assertEqual(len(recs), 1) diff --git a/tests/test_llm_agent_sha.py b/tests/test_llm_agent_sha.py index 4c827b1..c021374 100644 --- a/tests/test_llm_agent_sha.py +++ b/tests/test_llm_agent_sha.py @@ -128,11 +128,14 @@ class TestShaCannotBypassSelfReview(unittest.TestCase): {"login": "jcwalker3"}, # /user (eligibility) {"state": "open", "head": {"sha": "abc1234"}, "mergeable": True, "user": {"login": "jcwalker3"}} # /pulls/9 (eligibility) ] + from mcp_server import init_review_decision_lock, gitea_mark_final_review_decision + init_review_decision_lock("prgs", "review_pr") + gitea_mark_final_review_decision(9, "approve", remote="prgs") env = self._env(SHA_WOULD_BE_REVIEWER, "reviewer") with patch.dict(os.environ, env, clear=True): r = gitea_review_pr( pr_number=9, event="APPROVE", body="self approve", merge=False, - remote="prgs") + remote="prgs", final_review_decision_ready=True) self.assertFalse(r["success"]) self.assertIn("authenticated user is PR author", r["message"]) for call in mock_api.call_args_list: diff --git a/tests/test_permission_reports.py b/tests/test_permission_reports.py index b1a4d2d..5483ee1 100644 --- a/tests/test_permission_reports.py +++ b/tests/test_permission_reports.py @@ -229,9 +229,12 @@ class TestEligibilityDenialReport(PermissionReportBase): return {"login": "author-user"} return PR_PAYLOAD mock_api.side_effect = fake_api + mcp_server.init_review_decision_lock("prgs", "review_pr") + mcp_server.gitea_mark_final_review_decision(42, "approve", remote="prgs") with patch.dict(os.environ, self._env("author-profile")): res = mcp_server.gitea_submit_pr_review( - pr_number=42, action="approve", body="lgtm", remote="prgs") + pr_number=42, action="approve", body="lgtm", remote="prgs", + final_review_decision_ready=True) self.assertFalse(res["performed"]) self.assertIn("permission_report", res) self.assertEqual(res["permission_report"]["missing_permission"], @@ -268,9 +271,12 @@ class TestReviewCommentPathUsesCanonicalOp(PermissionReportBase): return {"login": "author-user"} return PR_PAYLOAD mock_api.side_effect = fake_api + mcp_server.init_review_decision_lock("prgs", "review_pr") + mcp_server.gitea_mark_final_review_decision(42, "comment", remote="prgs") with patch.dict(os.environ, self._env("author-profile")): res = mcp_server.gitea_submit_pr_review( - pr_number=42, action="comment", body="finding", remote="prgs") + pr_number=42, action="comment", body="finding", remote="prgs", + final_review_decision_ready=True) self.assertFalse(res["performed"]) report = res["permission_report"] self._assert_report_safe(report)