mercurial: enabled full evolve+topic extensions
This commit is contained in:
parent
5c2d3ac5aa
commit
d621ac19ee
5 changed files with 98 additions and 37 deletions
|
|
@ -375,6 +375,27 @@ class DbManage(object):
|
|||
hgevolve.ui_active = False
|
||||
self.sa.add(hgevolve)
|
||||
|
||||
hgevolve = RhodeCodeUi()
|
||||
hgevolve.ui_section = 'experimental'
|
||||
hgevolve.ui_key = 'evolution'
|
||||
hgevolve.ui_value = ''
|
||||
hgevolve.ui_active = False
|
||||
self.sa.add(hgevolve)
|
||||
|
||||
hgevolve = RhodeCodeUi()
|
||||
hgevolve.ui_section = 'experimental'
|
||||
hgevolve.ui_key = 'evolution.exchange'
|
||||
hgevolve.ui_value = ''
|
||||
hgevolve.ui_active = False
|
||||
self.sa.add(hgevolve)
|
||||
|
||||
hgevolve = RhodeCodeUi()
|
||||
hgevolve.ui_section = 'extensions'
|
||||
hgevolve.ui_key = 'topic'
|
||||
hgevolve.ui_value = ''
|
||||
hgevolve.ui_active = False
|
||||
self.sa.add(hgevolve)
|
||||
|
||||
# enable hggit disabled by default
|
||||
hggit = RhodeCodeUi()
|
||||
hggit.ui_section = 'extensions'
|
||||
|
|
|
|||
|
|
@ -371,7 +371,8 @@ def config_data_from_db(clear_session=True, repo=None):
|
|||
config.append((
|
||||
safe_str(setting.section), safe_str(setting.key), False))
|
||||
log.debug(
|
||||
'settings ui from db: %s',
|
||||
'settings ui from db@repo[%s]: %s',
|
||||
repo,
|
||||
','.join(map(lambda s: '[{}] {}={}'.format(*s), ui_data)))
|
||||
if clear_session:
|
||||
meta.Session.remove()
|
||||
|
|
|
|||
|
|
@ -119,6 +119,7 @@ class SettingsModel(BaseModel):
|
|||
new_ui.ui_value = val
|
||||
new_ui.ui_active = active
|
||||
|
||||
repository_id = ''
|
||||
if self.repo:
|
||||
repo = self._get_repo(self.repo)
|
||||
repository_id = repo.repo_id
|
||||
|
|
@ -440,26 +441,37 @@ class VcsSettingsModel(object):
|
|||
HOOKS_SETTINGS = (
|
||||
('hooks', 'changegroup.repo_size'),
|
||||
('hooks', 'changegroup.push_logger'),
|
||||
('hooks', 'outgoing.pull_logger'),)
|
||||
('hooks', 'outgoing.pull_logger'),
|
||||
)
|
||||
HG_SETTINGS = (
|
||||
('extensions', 'largefiles'),
|
||||
('phases', 'publish'),
|
||||
('extensions', 'evolve'),)
|
||||
('extensions', 'evolve'),
|
||||
('extensions', 'topic'),
|
||||
('experimental', 'evolution'),
|
||||
)
|
||||
GIT_SETTINGS = (
|
||||
('vcs_git_lfs', 'enabled'),)
|
||||
('vcs_git_lfs', 'enabled'),
|
||||
)
|
||||
GLOBAL_HG_SETTINGS = (
|
||||
('extensions', 'largefiles'),
|
||||
('largefiles', 'usercache'),
|
||||
('phases', 'publish'),
|
||||
('extensions', 'hgsubversion'),
|
||||
('extensions', 'evolve'),)
|
||||
('extensions', 'evolve'),
|
||||
('extensions', 'topic'),
|
||||
('experimental', 'evolution'),
|
||||
)
|
||||
|
||||
GLOBAL_GIT_SETTINGS = (
|
||||
('vcs_git_lfs', 'enabled'),
|
||||
('vcs_git_lfs', 'store_location'))
|
||||
('vcs_git_lfs', 'store_location')
|
||||
)
|
||||
|
||||
GLOBAL_SVN_SETTINGS = (
|
||||
('vcs_svn_proxy', 'http_requests_enabled'),
|
||||
('vcs_svn_proxy', 'http_server_url'))
|
||||
('vcs_svn_proxy', 'http_server_url')
|
||||
)
|
||||
|
||||
SVN_BRANCH_SECTION = 'vcs_svn_branch'
|
||||
SVN_TAG_SECTION = 'vcs_svn_tag'
|
||||
|
|
@ -574,12 +586,38 @@ class VcsSettingsModel(object):
|
|||
def create_repo_svn_settings(self, data):
|
||||
return self._create_svn_settings(self.repo_settings, data)
|
||||
|
||||
def _set_evolution(self, settings, is_enabled):
|
||||
if is_enabled:
|
||||
# if evolve is active set evolution=all
|
||||
|
||||
self._create_or_update_ui(
|
||||
settings, *('experimental', 'evolution'), value='all',
|
||||
active=True)
|
||||
self._create_or_update_ui(
|
||||
settings, *('experimental', 'evolution.exchange'), value='yes',
|
||||
active=True)
|
||||
# if evolve is active set topics server support
|
||||
self._create_or_update_ui(
|
||||
settings, *('extensions', 'topic'), value='',
|
||||
active=True)
|
||||
|
||||
else:
|
||||
self._create_or_update_ui(
|
||||
settings, *('experimental', 'evolution'), value='',
|
||||
active=False)
|
||||
self._create_or_update_ui(
|
||||
settings, *('experimental', 'evolution.exchange'), value='no',
|
||||
active=False)
|
||||
self._create_or_update_ui(
|
||||
settings, *('extensions', 'topic'), value='',
|
||||
active=False)
|
||||
|
||||
@assert_repo_settings
|
||||
def create_or_update_repo_hg_settings(self, data):
|
||||
largefiles, phases, evolve = \
|
||||
self.HG_SETTINGS
|
||||
self.HG_SETTINGS[:3]
|
||||
largefiles_key, phases_key, evolve_key = \
|
||||
self._get_settings_keys(self.HG_SETTINGS, data)
|
||||
self._get_settings_keys(self.HG_SETTINGS[:3], data)
|
||||
|
||||
self._create_or_update_ui(
|
||||
self.repo_settings, *largefiles, value='',
|
||||
|
|
@ -587,21 +625,22 @@ class VcsSettingsModel(object):
|
|||
self._create_or_update_ui(
|
||||
self.repo_settings, *evolve, value='',
|
||||
active=data[evolve_key])
|
||||
self._set_evolution(self.repo_settings, is_enabled=data[evolve_key])
|
||||
|
||||
self._create_or_update_ui(
|
||||
self.repo_settings, *phases, value=safe_str(data[phases_key]))
|
||||
|
||||
def create_or_update_global_hg_settings(self, data):
|
||||
largefiles, largefiles_store, phases, hgsubversion, evolve \
|
||||
= self.GLOBAL_HG_SETTINGS
|
||||
= self.GLOBAL_HG_SETTINGS[:5]
|
||||
largefiles_key, largefiles_store_key, phases_key, subversion_key, evolve_key \
|
||||
= self._get_settings_keys(self.GLOBAL_HG_SETTINGS, data)
|
||||
= self._get_settings_keys(self.GLOBAL_HG_SETTINGS[:5], data)
|
||||
|
||||
self._create_or_update_ui(
|
||||
self.global_settings, *largefiles, value='',
|
||||
active=data[largefiles_key])
|
||||
self._create_or_update_ui(
|
||||
self.global_settings, *largefiles_store,
|
||||
value=data[largefiles_store_key])
|
||||
self.global_settings, *largefiles_store, value=data[largefiles_store_key])
|
||||
self._create_or_update_ui(
|
||||
self.global_settings, *phases, value=safe_str(data[phases_key]))
|
||||
self._create_or_update_ui(
|
||||
|
|
@ -609,9 +648,10 @@ class VcsSettingsModel(object):
|
|||
self._create_or_update_ui(
|
||||
self.global_settings, *evolve, value='',
|
||||
active=data[evolve_key])
|
||||
self._set_evolution(self.global_settings, is_enabled=data[evolve_key])
|
||||
|
||||
def create_or_update_repo_git_settings(self, data):
|
||||
# NOTE(marcink): # comma make unpack work properly
|
||||
# NOTE(marcink): # comma makes unpack work properly
|
||||
lfs_enabled, \
|
||||
= self.GIT_SETTINGS
|
||||
|
||||
|
|
@ -675,6 +715,7 @@ class VcsSettingsModel(object):
|
|||
def get_repo_ui_settings(self, section=None, key=None):
|
||||
global_uis = self.global_settings.get_ui(section, key)
|
||||
repo_uis = self.repo_settings.get_ui(section, key)
|
||||
|
||||
filtered_repo_uis = self._filter_ui_settings(repo_uis)
|
||||
filtered_repo_uis_keys = [
|
||||
(s.section, s.key) for s in filtered_repo_uis]
|
||||
|
|
|
|||
|
|
@ -133,13 +133,13 @@
|
|||
|
||||
<div class="checkbox">
|
||||
${h.checkbox('extensions_evolve' + suffix, 'True', **kwargs)}
|
||||
<label for="extensions_evolve${suffix}">${_('Enable evolve extension')}</label>
|
||||
<label for="extensions_evolve${suffix}">${_('Enable Evolve and Topic extension')}</label>
|
||||
</div>
|
||||
<div class="label">
|
||||
% if display_globals:
|
||||
<span class="help-block">${_('Enable evolve extension for all repositories.')}</span>
|
||||
<span class="help-block">${_('Enable Evolve and Topic extensions for all repositories.')}</span>
|
||||
% else:
|
||||
<span class="help-block">${_('Enable evolve extension for this repository.')}</span>
|
||||
<span class="help-block">${_('Enable Evolve and Topic extensions for this repository.')}</span>
|
||||
% endif
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -501,8 +501,8 @@ class TestCreateOrUpdateUi(object):
|
|||
|
||||
def test_update(self, repo_stub, settings_util):
|
||||
model = VcsSettingsModel(repo=repo_stub.repo_name)
|
||||
|
||||
largefiles, phases, evolve = model.HG_SETTINGS
|
||||
# care about only 3 first settings
|
||||
largefiles, phases, evolve = model.HG_SETTINGS[:3]
|
||||
|
||||
section = 'test-section'
|
||||
key = 'test-key'
|
||||
|
|
@ -531,10 +531,11 @@ class TestCreateOrUpdateRepoHgSettings(object):
|
|||
with mock.patch.object(model, '_create_or_update_ui') as create_mock:
|
||||
model.create_or_update_repo_hg_settings(self.FORM_DATA)
|
||||
expected_calls = [
|
||||
mock.call(model.repo_settings, 'extensions', 'largefiles',
|
||||
active=False, value=''),
|
||||
mock.call(model.repo_settings, 'extensions', 'evolve',
|
||||
active=False, value=''),
|
||||
mock.call(model.repo_settings, 'extensions', 'largefiles', active=False, value=''),
|
||||
mock.call(model.repo_settings, 'extensions', 'evolve', active=False, value=''),
|
||||
mock.call(model.repo_settings, 'experimental', 'evolution', active=False, value=''),
|
||||
mock.call(model.repo_settings, 'experimental', 'evolution.exchange', active=False, value='no'),
|
||||
mock.call(model.repo_settings, 'extensions', 'topic', active=False, value=''),
|
||||
mock.call(model.repo_settings, 'phases', 'publish', value='False'),
|
||||
]
|
||||
assert expected_calls == create_mock.call_args_list
|
||||
|
|
@ -589,17 +590,16 @@ class TestCreateOrUpdateGlobalHgSettings(object):
|
|||
with mock.patch.object(model, '_create_or_update_ui') as create_mock:
|
||||
model.create_or_update_global_hg_settings(self.FORM_DATA)
|
||||
expected_calls = [
|
||||
mock.call(model.global_settings, 'extensions', 'largefiles',
|
||||
active=False, value=''),
|
||||
mock.call(model.global_settings, 'largefiles', 'usercache',
|
||||
value='/example/largefiles-store'),
|
||||
mock.call(model.global_settings, 'phases', 'publish',
|
||||
value='False'),
|
||||
mock.call(model.global_settings, 'extensions', 'hgsubversion',
|
||||
active=False),
|
||||
mock.call(model.global_settings, 'extensions', 'evolve',
|
||||
active=False, value='')
|
||||
mock.call(model.global_settings, 'extensions', 'largefiles', active=False, value=''),
|
||||
mock.call(model.global_settings, 'largefiles', 'usercache', value='/example/largefiles-store'),
|
||||
mock.call(model.global_settings, 'phases', 'publish', value='False'),
|
||||
mock.call(model.global_settings, 'extensions', 'hgsubversion', active=False),
|
||||
mock.call(model.global_settings, 'extensions', 'evolve', active=False, value=''),
|
||||
mock.call(model.global_settings, 'experimental', 'evolution', active=False, value=''),
|
||||
mock.call(model.global_settings, 'experimental', 'evolution.exchange', active=False, value='no'),
|
||||
mock.call(model.global_settings, 'extensions', 'topic', active=False, value=''),
|
||||
]
|
||||
|
||||
assert expected_calls == create_mock.call_args_list
|
||||
|
||||
@pytest.mark.parametrize('field_to_remove', FORM_DATA.keys())
|
||||
|
|
@ -625,10 +625,8 @@ class TestCreateOrUpdateGlobalGitSettings(object):
|
|||
with mock.patch.object(model, '_create_or_update_ui') as create_mock:
|
||||
model.create_or_update_global_git_settings(self.FORM_DATA)
|
||||
expected_calls = [
|
||||
mock.call(model.global_settings, 'vcs_git_lfs', 'enabled',
|
||||
active=False, value=False),
|
||||
mock.call(model.global_settings, 'vcs_git_lfs', 'store_location',
|
||||
value='/example/lfs-store'),
|
||||
mock.call(model.global_settings, 'vcs_git_lfs', 'enabled', active=False, value=False),
|
||||
mock.call(model.global_settings, 'vcs_git_lfs', 'store_location', value='/example/lfs-store'),
|
||||
]
|
||||
assert expected_calls == create_mock.call_args_list
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue