From 4f1abd8ffacf6f85fdac75d661d54878e44123df Mon Sep 17 00:00:00 2001 From: ievgenii vdovenko Date: Thu, 26 Jun 2025 10:10:14 +0200 Subject: [PATCH] tests: cleanup tests, adds new test for updating close branch setting --- .../tests/test_repo_pullrequests.py | 58 ++++++++++++++----- 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/rhodecode/apps/repository/tests/test_repo_pullrequests.py b/rhodecode/apps/repository/tests/test_repo_pullrequests.py index fdceb5ac..65eff280 100644 --- a/rhodecode/apps/repository/tests/test_repo_pullrequests.py +++ b/rhodecode/apps/repository/tests/test_repo_pullrequests.py @@ -855,9 +855,7 @@ class TestPullrequestsView(object): ) assert response.status_int == 403 - def test_new_pull_request_view_close_branch_before_merging_setting_present_for_ee( - self, backend, pr_util, xhr_header, baseapp - ): + def test_new_pull_request_view_close_branch_before_merging_setting_present_for_ee(self, backend, baseapp): with temporary_settings(baseapp, **{"rhodecode.edition_id": "EE"}): response = self.app.get(route_path("pullrequest_new", repo_name=backend.repo_name), status=200) @@ -867,17 +865,22 @@ class TestPullrequestsView(object): @pytest.mark.parametrize( "global_close_branch_before_merging_value", [ - (False,), - (True,), + False, + True, ], ) def test_new_pull_request_view_close_branch_before_merging_setting_inherit_global_settings( - self, backend, pr_util, xhr_header, baseapp, global_close_branch_before_merging_value + self, backend, baseapp, global_close_branch_before_merging_value ): + def get_repo_settings_inherited(settings_key, default): + if settings_key == f"rhodecode_{backend.repo.repo_type}_close_branch_before_merging": + return global_close_branch_before_merging_value + return None + with temporary_settings(baseapp, **{"rhodecode.edition_id": "EE"}): with patch.object(VcsSettingsModel, "get_repo_settings_inherited") as repo_settings_inherited: settings_mock = MagicMock() - settings_mock.get.return_value = global_close_branch_before_merging_value + settings_mock.get.side_effect = get_repo_settings_inherited repo_settings_inherited.return_value = settings_mock response = self.app.get(route_path("pullrequest_new", repo_name=backend.repo_name), status=200) @@ -888,17 +891,44 @@ class TestPullrequestsView(object): else: assert_response.element_contain_no_attribute("#close_branch_before_merging", "checked") - def test_new_pull_request_view_close_branch_before_merging_setting_not_present_for_ce( - self, backend, pr_util, xhr_header - ): + def test_new_pull_request_view_close_branch_before_merging_setting_not_present_for_ce(self, backend): response = self.app.get(route_path("pullrequest_new", repo_name=backend.repo_name), status=200) assert_response = response.assert_response() assert_response.no_element_exists("#close_branch_before_merging") - def test_show_pull_request_view_close_branch_before_merging_setting_present_for_ee( - self, backend, pr_util, xhr_header, baseapp + @pytest.mark.parametrize( + "close_branch_before_merging", + [ + True, + False, + ], + ) + def test_update_pull_request_view_close_branch_before_merging_setting( + self, backend, pr_util, csrf_token, close_branch_before_merging ): + pull_request = pr_util.create_pull_request(mergeable=True, enable_notifications=False) + pr_id = pull_request.pull_request_id + + data = [ + ("close_branch_before_merging", close_branch_before_merging), + ("csrf_token", csrf_token), + ] + + self.app.post( + route_path( + "pullrequest_update", + repo_name=pull_request.target_repo.scm_instance().name, + pull_request_id=pr_id, + ), + data, + ) + + db_pr = PullRequest.get(pr_id) + + assert db_pr.settings["close_branch_before_merging"] == close_branch_before_merging + + def test_show_pull_request_view_close_branch_before_merging_setting_present_for_ee(self, backend, pr_util, baseapp): with temporary_settings(baseapp, **{"rhodecode.edition_id": "EE"}): pull_request = pr_util.create_pull_request(mergeable=True, enable_notifications=False) @@ -913,9 +943,7 @@ class TestPullrequestsView(object): assert_response = response.assert_response() assert_response.one_element_exists("#close_branch_before_merging") - def test_show_pull_request_view_close_branch_before_merging_setting_not_present_for_ce( - self, backend, pr_util, xhr_header - ): + def test_show_pull_request_view_close_branch_before_merging_setting_not_present_for_ce(self, backend, pr_util): pull_request = pr_util.create_pull_request(mergeable=True, enable_notifications=False) response = self.app.get(