mirror of
https://github.com/ansible/awx.git
synced 2026-03-07 19:51:08 -03:30
@@ -143,7 +143,7 @@ class SettingsRegistry(object):
|
|||||||
field_instance.default = original_field_instance.to_representation(getattr(self.settings, setting))
|
field_instance.default = original_field_instance.to_representation(getattr(self.settings, setting))
|
||||||
except:
|
except:
|
||||||
logger.warning('Unable to retrieve default value for user setting "%s".', setting, exc_info=True)
|
logger.warning('Unable to retrieve default value for user setting "%s".', setting, exc_info=True)
|
||||||
elif not field_instance.read_only or field_instance.default is empty or not field_instance.default:
|
elif not field_instance.read_only or field_instance.default is empty or field_instance.defined_in_file:
|
||||||
try:
|
try:
|
||||||
field_instance.default = original_field_instance.to_representation(self.settings._awx_conf_settings._get_default(setting))
|
field_instance.default = original_field_instance.to_representation(self.settings._awx_conf_settings._get_default(setting))
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
|
|||||||
@@ -61,13 +61,31 @@ def test_unregistered_setting(settings):
|
|||||||
assert settings.cache.get('DEBUG') is None
|
assert settings.cache.get('DEBUG') is None
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.defined_in_file(AWX_SOME_SETTING='DEFAULT')
|
|
||||||
def test_read_only_setting(settings):
|
def test_read_only_setting(settings):
|
||||||
|
settings.registry.register(
|
||||||
|
'AWX_READ_ONLY',
|
||||||
|
field_class=fields.CharField,
|
||||||
|
category=_('System'),
|
||||||
|
category_slug='system',
|
||||||
|
default='NO-EDITS',
|
||||||
|
read_only=True
|
||||||
|
)
|
||||||
|
assert settings.AWX_READ_ONLY == 'NO-EDITS'
|
||||||
|
assert len(settings.registry.get_registered_settings(read_only=False)) == 0
|
||||||
|
settings = settings.registry.get_registered_settings(read_only=True)
|
||||||
|
assert settings == ['AWX_READ_ONLY']
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.defined_in_file(AWX_SOME_SETTING='DEFAULT')
|
||||||
|
@pytest.mark.parametrize('read_only', [True, False])
|
||||||
|
def test_setting_defined_in_file(settings, read_only):
|
||||||
|
kwargs = {'read_only': True} if read_only else {}
|
||||||
settings.registry.register(
|
settings.registry.register(
|
||||||
'AWX_SOME_SETTING',
|
'AWX_SOME_SETTING',
|
||||||
field_class=fields.CharField,
|
field_class=fields.CharField,
|
||||||
category=_('System'),
|
category=_('System'),
|
||||||
category_slug='system'
|
category_slug='system',
|
||||||
|
**kwargs
|
||||||
)
|
)
|
||||||
assert settings.AWX_SOME_SETTING == 'DEFAULT'
|
assert settings.AWX_SOME_SETTING == 'DEFAULT'
|
||||||
assert len(settings.registry.get_registered_settings(read_only=False)) == 0
|
assert len(settings.registry.get_registered_settings(read_only=False)) == 0
|
||||||
@@ -76,7 +94,7 @@ def test_read_only_setting(settings):
|
|||||||
|
|
||||||
|
|
||||||
@pytest.mark.defined_in_file(AWX_SOME_SETTING='DEFAULT')
|
@pytest.mark.defined_in_file(AWX_SOME_SETTING='DEFAULT')
|
||||||
def test_read_only_setting_with_empty_default(settings):
|
def test_setting_defined_in_file_with_empty_default(settings):
|
||||||
settings.registry.register(
|
settings.registry.register(
|
||||||
'AWX_SOME_SETTING',
|
'AWX_SOME_SETTING',
|
||||||
field_class=fields.CharField,
|
field_class=fields.CharField,
|
||||||
@@ -90,6 +108,21 @@ def test_read_only_setting_with_empty_default(settings):
|
|||||||
assert settings == ['AWX_SOME_SETTING']
|
assert settings == ['AWX_SOME_SETTING']
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.defined_in_file(AWX_SOME_SETTING='DEFAULT')
|
||||||
|
def test_setting_defined_in_file_with_specific_default(settings):
|
||||||
|
settings.registry.register(
|
||||||
|
'AWX_SOME_SETTING',
|
||||||
|
field_class=fields.CharField,
|
||||||
|
category=_('System'),
|
||||||
|
category_slug='system',
|
||||||
|
default=123
|
||||||
|
)
|
||||||
|
assert settings.AWX_SOME_SETTING == 'DEFAULT'
|
||||||
|
assert len(settings.registry.get_registered_settings(read_only=False)) == 0
|
||||||
|
settings = settings.registry.get_registered_settings(read_only=True)
|
||||||
|
assert settings == ['AWX_SOME_SETTING']
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.defined_in_file(AWX_SOME_SETTING='DEFAULT')
|
@pytest.mark.defined_in_file(AWX_SOME_SETTING='DEFAULT')
|
||||||
def test_read_only_defaults_are_cached(settings):
|
def test_read_only_defaults_are_cached(settings):
|
||||||
"read-only settings are stored in the cache"
|
"read-only settings are stored in the cache"
|
||||||
|
|||||||
Reference in New Issue
Block a user