From 1ede0669d946285a1ad86b2a670212efb6f59f90 Mon Sep 17 00:00:00 2001 From: ievgenii vdovenko Date: Fri, 6 Jun 2025 17:14:48 +0200 Subject: [PATCH] fix: adds test --- .../tests/test_repo_settings_advanced.py | 33 ++++++++++++++++++- .../views/repo_settings_advanced.py | 1 - 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/rhodecode/apps/repository/tests/test_repo_settings_advanced.py b/rhodecode/apps/repository/tests/test_repo_settings_advanced.py index 7a484d61..68fcf0ae 100644 --- a/rhodecode/apps/repository/tests/test_repo_settings_advanced.py +++ b/rhodecode/apps/repository/tests/test_repo_settings_advanced.py @@ -15,9 +15,10 @@ # This program is dual-licensed. If you wish to learn more about the # RhodeCode Enterprise Edition, including its added features, Support services, # and proprietary license terms, please see https://rhodecode.com/licenses/ - import pytest +from unittest.mock import patch, MagicMock +from rhodecode.apps.repository.views.repo_settings_advanced import RepoSettingsAdvancedView from rhodecode.lib.str_utils import safe_str from rhodecode.model.db import Repository from rhodecode.model.repo import RepoModel @@ -110,6 +111,36 @@ class TestAdminRepoSettingsAdvanced(object): assert RepoModel().get_by_repo_name(repo_name) is None assert not repo_on_filesystem(repo_name_str) + @patch.object(RepoSettingsAdvancedView, "_maybe_needs_password_change") + @patch.object(RepoSettingsAdvancedView, "_maybe_needs_2fa_configuration") + @patch.object(RepoSettingsAdvancedView, "_maybe_needs_2fa_check") + @patch("rhodecode.apps._base.ScmModel") + @patch("rhodecode.apps._base.IssueTrackerSettingsModel") + @patch("rhodecode.lib.helpers.route_path") + def test_advanced_repo_delete__call_remote_cache_invalidation(self, *ignore): + request = MagicMock() + + db_repo = MagicMock() + scm_instance = MagicMock() + + db_repo.scm_instance.return_value = scm_instance + request.db_repo = db_repo + + obj = RepoSettingsAdvancedView(MagicMock(), request) + # bypass decorators + unwrapped__edit_advanced_delete = RepoSettingsAdvancedView.__dict__[ + "edit_advanced_delete" + ].__wrapped__.__wrapped__.__wrapped__ + + try: + unwrapped__edit_advanced_delete(obj) + except Exception as ignore: + # ignore error, because of mocks method will fail with exception which is not related to the current test + pass + + db_repo.scm_instance.assert_called_once_with(cache=False) + scm_instance.vcsserver_invalidate_cache(delete=True) + @pytest.mark.parametrize("suffix", ["", "ąęł", "123"], ids=no_newline_id_generator) def test_advanced_repo_archive(self, autologin_user, backend, suffix, csrf_token): repo = backend.create_repo(name_suffix=suffix) diff --git a/rhodecode/apps/repository/views/repo_settings_advanced.py b/rhodecode/apps/repository/views/repo_settings_advanced.py index 402df14d..d6d18cd4 100644 --- a/rhodecode/apps/repository/views/repo_settings_advanced.py +++ b/rhodecode/apps/repository/views/repo_settings_advanced.py @@ -22,7 +22,6 @@ import logging from pyramid.httpexceptions import HTTPFound from packaging.version import Version -from rhodecode import events from rhodecode.apps._base import RepoAppView from rhodecode.lib import helpers as h from rhodecode.lib import audit_logger