Skip to content
This repository was archived by the owner on Apr 13, 2023. It is now read-only.

Commit 84fd47a

Browse files
authored
Merge pull request #523 from staticdev/bug/rollback-failed-merge-prs
Fix rollback on failed merge PR
2 parents c91583b + 2ebc393 commit 84fd47a

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/git_portfolio/use_cases/gh_merge_pr.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def action( # type: ignore[override]
1515
"""Merge pull requests."""
1616
github_service_method = "merge_pull_request_from_repo"
1717
self.call_github_service(github_service_method, github_repo, pr_merge)
18-
if pr_merge.delete_branch:
18+
if pr_merge.delete_branch and not self.error:
1919
delete_branch_use_case = dbr.GhDeleteBranchUseCase(
2020
self.config_manager, self.github_service
2121
)

tests/use_cases/test_gh_merge_pr.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ def test_action(
5656
config_manager = mock_config_manager.return_value
5757
github_service = mock_github_service.return_value
5858
use_case = ghmp.GhMergePrUseCase(config_manager, github_service)
59+
5960
use_case.action(REPO, domain_mprs[0])
6061

6162
assert "success message\n" == use_case.output
@@ -71,12 +72,30 @@ def test_action_delete_branch(
7172
config_manager = mock_config_manager.return_value
7273
github_service = mock_github_service.return_value
7374
use_case = ghmp.GhMergePrUseCase(config_manager, github_service)
75+
7476
use_case.action(REPO, domain_mprs[1])
7577

7678
assert "success message\n" == use_case.output
7779
mock_gh_delete_branch_use_case.assert_called_once()
7880

7981

82+
def test_action_delete_branch_with_error(
83+
mock_config_manager: MockerFixture,
84+
mock_github_service: MockerFixture,
85+
mock_gh_delete_branch_use_case: MockerFixture,
86+
domain_mprs: list[mpr.PullRequestMerge],
87+
) -> None:
88+
"""It returns does not call delete branch."""
89+
config_manager = mock_config_manager.return_value
90+
github_service = mock_github_service.return_value
91+
use_case = ghmp.GhMergePrUseCase(config_manager, github_service)
92+
use_case.error = True
93+
94+
use_case.action(REPO, domain_mprs[1])
95+
96+
assert not mock_gh_delete_branch_use_case.called
97+
98+
8099
@pytest.mark.integration
81100
def test_action_delete_branch_integration(
82101
mock_config_manager: MockerFixture,
@@ -87,6 +106,7 @@ def test_action_delete_branch_integration(
87106
config_manager = mock_config_manager.return_value
88107
github_service = mock_github_service.return_value
89108
use_case = ghmp.GhMergePrUseCase(config_manager, github_service)
109+
90110
use_case.action(REPO, domain_mprs[1])
91111

92112
assert "success message\n" == use_case.output

0 commit comments

Comments
 (0)