Compare commits

...

1 Commits

Author SHA1 Message Date
f4b9241792 tc 2025-06-24 14:15:30 -07:00
3 changed files with 14 additions and 1 deletions

Binary file not shown.

View File

@ -31,6 +31,7 @@ from trymerge import (
main as trymerge_main,
MandatoryChecksMissingError,
MergeRule,
PostCommentError,
RE_GHSTACK_DESC,
read_merge_rules,
remove_job_name_suffix,
@ -488,6 +489,16 @@ class TestTryMerge(TestCase):
ignore_current=False,
)
def test_revert_refuse_open_pr(self, *args: Any) -> None:
"""Tests that revert fails for open PRs"""
pr = GitHubPR("pytorch", "pytorch", 140613)
repo = DummyGitRepo()
self.assertRaisesRegex(
PostCommentError,
"Don't want to revert an open PR",
lambda: validate_revert(repo, pr),
)
@mock.patch("trymerge.read_merge_rules", side_effect=mocked_read_merge_rules)
def test_revert_rules(self, *args: Any) -> None:
"""Tests that reverts from collaborators are allowed"""

View File

@ -1885,6 +1885,8 @@ def get_pr_commit_sha(repo: GitRepo, pr: GitHubPR) -> str:
def validate_revert(
repo: GitRepo, pr: GitHubPR, *, comment_id: Optional[int] = None
) -> tuple[str, str]:
if not pr.is_closed():
raise PostCommentError("Don't want to revert an open PR")
comment = (
pr.get_last_comment()
if comment_id is None
@ -2028,7 +2030,7 @@ def try_revert(
try:
shas_and_prs = get_ghstack_dependent_prs(repo, pr)
prs_to_revert = " ".join([t[1].get_pr_url() for t in shas_and_prs])
print(f"About to stack of PRs: {prs_to_revert}")
print(f"About to revert stack of PRs: {prs_to_revert}")
except Exception as e:
print(
f"Failed to fetch dependent PRs: {str(e)}, fall over to single revert"