diff --git a/rhodecode/apps/admin/tests/test_admin_settings.py b/rhodecode/apps/admin/tests/test_admin_settings.py --- a/rhodecode/apps/admin/tests/test_admin_settings.py +++ b/rhodecode/apps/admin/tests/test_admin_settings.py @@ -613,6 +613,7 @@ class TestAdminSettingsIssueTracker(obje RC_PREFIX = 'rhodecode_' SHORT_PATTERN_KEY = 'issuetracker_pat_' PATTERN_KEY = RC_PREFIX + SHORT_PATTERN_KEY + DESC_KEY = RC_PREFIX + 'issuetracker_desc_' def test_issuetracker_index(self, autologin_user): response = self.app.get(route_path('admin_settings_issuetracker')) @@ -665,30 +666,43 @@ class TestAdminSettingsIssueTracker(obje def test_edit_issuetracker_pattern( self, autologin_user, backend, csrf_token, request): - old_pattern = 'issuetracker_pat' + + old_pattern = 'issuetracker_pat1' old_uid = md5(old_pattern) - pattern = 'issuetracker_pat_new' - self.new_uid = md5(pattern) - - SettingsModel().create_or_update_setting( - self.SHORT_PATTERN_KEY+old_uid, old_pattern, 'unicode') post_url = route_path('admin_settings_issuetracker_update') post_data = { - 'new_pattern_pattern_0': pattern, - 'new_pattern_url_0': 'https://url', + 'new_pattern_pattern_0': old_pattern, + 'new_pattern_url_0': 'http://url', 'new_pattern_prefix_0': 'prefix', 'new_pattern_description_0': 'description', + + 'csrf_token': csrf_token + } + self.app.post(post_url, post_data, status=302) + + new_pattern = 'issuetracker_pat1_edited' + self.new_uid = md5(new_pattern) + + post_url = route_path('admin_settings_issuetracker_update') + post_data = { + 'new_pattern_pattern_{}'.format(old_uid): new_pattern, + 'new_pattern_url_{}'.format(old_uid): 'https://url_edited', + 'new_pattern_prefix_{}'.format(old_uid): 'prefix_edited', + 'new_pattern_description_{}'.format(old_uid): 'description_edited', 'uid': old_uid, 'csrf_token': csrf_token } self.app.post(post_url, post_data, status=302) + settings = SettingsModel().get_all_settings() - assert settings[self.PATTERN_KEY+self.new_uid] == pattern + assert settings[self.PATTERN_KEY+self.new_uid] == new_pattern + assert settings[self.DESC_KEY + self.new_uid] == 'description_edited' assert self.PATTERN_KEY+old_uid not in settings @request.addfinalizer def cleanup(): + IssueTrackerSettingsModel().delete_entries(old_uid) IssueTrackerSettingsModel().delete_entries(self.new_uid) def test_replace_issuetracker_pattern_description( @@ -727,16 +741,27 @@ class TestAdminSettingsIssueTracker(obje def test_delete_issuetracker_pattern( self, autologin_user, backend, csrf_token, settings_util, xhr_header): - pattern = 'issuetracker_pat' - uid = md5(pattern) - settings_util.create_rhodecode_setting( - self.SHORT_PATTERN_KEY+uid, pattern, 'unicode', cleanup=False) + + old_pattern = 'issuetracker_pat_deleted' + old_uid = md5(old_pattern) + + post_url = route_path('admin_settings_issuetracker_update') + post_data = { + 'new_pattern_pattern_0': old_pattern, + 'new_pattern_url_0': 'http://url', + 'new_pattern_prefix_0': 'prefix', + 'new_pattern_description_0': 'description', + + 'csrf_token': csrf_token + } + self.app.post(post_url, post_data, status=302) post_url = route_path('admin_settings_issuetracker_delete') post_data = { - 'uid': uid, + 'uid': old_uid, 'csrf_token': csrf_token } self.app.post(post_url, post_data, extra_environ=xhr_header, status=200) settings = SettingsModel().get_all_settings() - assert 'rhodecode_%s%s' % (self.SHORT_PATTERN_KEY, uid) not in settings + assert self.PATTERN_KEY+old_uid not in settings + assert self.DESC_KEY + old_uid not in settings diff --git a/rhodecode/model/settings.py b/rhodecode/model/settings.py --- a/rhodecode/model/settings.py +++ b/rhodecode/model/settings.py @@ -174,7 +174,7 @@ class SettingsModel(BaseModel): self, name, val=Optional(''), type_=Optional('unicode')): """ Creates or updates RhodeCode setting. If updates is triggered it will - only update parameters that are explicityl set Optional instance will + only update parameters that are explicitly set Optional instance will be skipped :param name: @@ -267,7 +267,7 @@ class SettingsModel(BaseModel): statsd.timing("rhodecode_settings_timing.histogram", elapsed_time_ms, use_decimals=False) - log.debug('Fetching app settings for key: %s took: %.4fs', cache_key, compute_time) + log.debug('Fetching app settings for key: %s took: %.4fs: cache: %s', cache_key, compute_time, cache) return result