Initialize review decision lock in test suite to prevent flakiness and resolve test pollution
This commit is contained in:
+5
-1
@@ -312,11 +312,15 @@ class TestGatedToolAudit(_AuditWiringBase):
|
|||||||
mock_api.side_effect = [
|
mock_api.side_effect = [
|
||||||
{"login": "reviewer-bot"}, self._pr("author-bot"), {"id": 7},
|
{"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",
|
env = self._env(GITEA_PROFILE_NAME="gitea-reviewer",
|
||||||
GITEA_ALLOWED_OPERATIONS="read,review,approve")
|
GITEA_ALLOWED_OPERATIONS="read,review,approve")
|
||||||
with patch.dict(os.environ, env, clear=True):
|
with patch.dict(os.environ, env, clear=True):
|
||||||
r = gitea_submit_pr_review(pr_number=8, action="approve",
|
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"])
|
self.assertTrue(r["performed"])
|
||||||
recs = self._records()
|
recs = self._records()
|
||||||
self.assertEqual(len(recs), 1)
|
self.assertEqual(len(recs), 1)
|
||||||
|
|||||||
@@ -128,11 +128,14 @@ class TestShaCannotBypassSelfReview(unittest.TestCase):
|
|||||||
{"login": "jcwalker3"}, # /user (eligibility)
|
{"login": "jcwalker3"}, # /user (eligibility)
|
||||||
{"state": "open", "head": {"sha": "abc1234"}, "mergeable": True, "user": {"login": "jcwalker3"}} # /pulls/9 (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")
|
env = self._env(SHA_WOULD_BE_REVIEWER, "reviewer")
|
||||||
with patch.dict(os.environ, env, clear=True):
|
with patch.dict(os.environ, env, clear=True):
|
||||||
r = gitea_review_pr(
|
r = gitea_review_pr(
|
||||||
pr_number=9, event="APPROVE", body="self approve", merge=False,
|
pr_number=9, event="APPROVE", body="self approve", merge=False,
|
||||||
remote="prgs")
|
remote="prgs", final_review_decision_ready=True)
|
||||||
self.assertFalse(r["success"])
|
self.assertFalse(r["success"])
|
||||||
self.assertIn("authenticated user is PR author", r["message"])
|
self.assertIn("authenticated user is PR author", r["message"])
|
||||||
for call in mock_api.call_args_list:
|
for call in mock_api.call_args_list:
|
||||||
|
|||||||
@@ -229,9 +229,12 @@ class TestEligibilityDenialReport(PermissionReportBase):
|
|||||||
return {"login": "author-user"}
|
return {"login": "author-user"}
|
||||||
return PR_PAYLOAD
|
return PR_PAYLOAD
|
||||||
mock_api.side_effect = fake_api
|
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")):
|
with patch.dict(os.environ, self._env("author-profile")):
|
||||||
res = mcp_server.gitea_submit_pr_review(
|
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.assertFalse(res["performed"])
|
||||||
self.assertIn("permission_report", res)
|
self.assertIn("permission_report", res)
|
||||||
self.assertEqual(res["permission_report"]["missing_permission"],
|
self.assertEqual(res["permission_report"]["missing_permission"],
|
||||||
@@ -268,9 +271,12 @@ class TestReviewCommentPathUsesCanonicalOp(PermissionReportBase):
|
|||||||
return {"login": "author-user"}
|
return {"login": "author-user"}
|
||||||
return PR_PAYLOAD
|
return PR_PAYLOAD
|
||||||
mock_api.side_effect = fake_api
|
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")):
|
with patch.dict(os.environ, self._env("author-profile")):
|
||||||
res = mcp_server.gitea_submit_pr_review(
|
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"])
|
self.assertFalse(res["performed"])
|
||||||
report = res["permission_report"]
|
report = res["permission_report"]
|
||||||
self._assert_report_safe(report)
|
self._assert_report_safe(report)
|
||||||
|
|||||||
Reference in New Issue
Block a user