feature: adds test global settings inherited

This commit is contained in:
ievgenii vdovenko 2025-06-25 18:07:58 +02:00
parent fcec7f0bbc
commit e20686a760
2 changed files with 36 additions and 4 deletions

View file

@ -17,12 +17,11 @@
# and proprietary license terms, please see https://rhodecode.com/licenses/
import logging
import os
from typing import List, Tuple
import mock
import pytest
from mock.mock import patch, MagicMock
import rhodecode
from rhodecode.lib import helpers as h
from rhodecode.lib.vcs.backends.base import MergeResponse, MergeFailureReason, Reference
from rhodecode.lib.vcs.nodes import FileNode
@ -38,6 +37,7 @@ from rhodecode.model.db import (
)
from rhodecode.model.meta import Session
from rhodecode.model.pull_request import PullRequestModel
from rhodecode.model.settings import VcsSettingsModel
from rhodecode.model.user import UserModel
from rhodecode.model.comment import CommentsModel
from rhodecode.tests import (
@ -864,8 +864,32 @@ class TestPullrequestsView(object):
assert_response = response.assert_response()
assert_response.one_element_exists("#close_branch_before_merging")
@pytest.mark.parametrize(
"global_close_branch_before_merging_value",
[
(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
):
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
repo_settings_inherited.return_value = settings_mock
response = self.app.get(route_path("pullrequest_new", repo_name=backend.repo_name), status=200)
assert_response = response.assert_response()
if global_close_branch_before_merging_value:
assert_response.element_contain_attribute("#close_branch_before_merging", "checked", "checked")
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, baseapp
self, backend, pr_util, xhr_header
):
response = self.app.get(route_path("pullrequest_new", repo_name=backend.repo_name), status=200)
@ -890,7 +914,7 @@ class TestPullrequestsView(object):
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, baseapp
self, backend, pr_util, xhr_header
):
pull_request = pr_util.create_pull_request(mergeable=True, enable_notifications=False)

View file

@ -284,6 +284,14 @@ class AssertResponse(object):
element = self.get_element(css_selector)
assert expected_content in element.text_content()
def element_contain_attribute(self, css_selector, attr_name, attr_value):
element = self.get_element(css_selector)
assert element.attrib.get(attr_name) == attr_value
def element_contain_no_attribute(self, css_selector, attr_name):
element = self.get_element(css_selector)
assert not element.attrib.get(attr_name)
def element_value_contains(self, css_selector, expected_content):
element = self.get_element(css_selector)
assert expected_content in element.value