Fix evaluation priority of the bootstrap settings
Closes GitLab issue #702. Thanks to Kevin Pawsey (@kevinpawsey) for the report and the help debuging the issue. Signed-off-by: Roberto Rosario <roberto.rosario@mayan-edms.com>
This commit is contained in:
61
mayan/apps/smart_settings/tests/test_utils.py
Normal file
61
mayan/apps/smart_settings/tests/test_utils.py
Normal file
@@ -0,0 +1,61 @@
|
||||
from __future__ import absolute_import, unicode_literals
|
||||
|
||||
from mayan.apps.common.tests.base import BaseTestCase
|
||||
from mayan.apps.common.tests.mixins import EnvironmentTestCaseMixin
|
||||
|
||||
from .literals import (
|
||||
TEST_BOOTSTAP_SETTING_NAME, TEST_SETTING_VALUE,
|
||||
TEST_SETTING_VALUE_OVERRIDE
|
||||
)
|
||||
from .mixins import BoostrapSettingTestMixin
|
||||
|
||||
|
||||
class BoostrapSettingTestCase(
|
||||
BoostrapSettingTestMixin, EnvironmentTestCaseMixin, BaseTestCase
|
||||
):
|
||||
def setUp(self):
|
||||
super(BoostrapSettingTestCase, self).setUp()
|
||||
self._register_test_boostrap_setting()
|
||||
self._create_test_bootstrap_singleton()
|
||||
|
||||
def test_bootstrap_environment_overrides_config(self):
|
||||
self._set_environment_variable(
|
||||
name='MAYAN_{}'.format(TEST_BOOTSTAP_SETTING_NAME),
|
||||
value=TEST_SETTING_VALUE_OVERRIDE
|
||||
)
|
||||
|
||||
self._create_test_config_file(value=TEST_SETTING_VALUE)
|
||||
|
||||
self.assertEqual(
|
||||
self.test_globals[TEST_BOOTSTAP_SETTING_NAME],
|
||||
TEST_SETTING_VALUE_OVERRIDE
|
||||
)
|
||||
|
||||
def test_bootstrap_config_overrides_settings(self):
|
||||
self.test_globals[TEST_BOOTSTAP_SETTING_NAME] = TEST_SETTING_VALUE
|
||||
|
||||
self._create_test_config_file(value=TEST_SETTING_VALUE_OVERRIDE)
|
||||
|
||||
self.assertEqual(
|
||||
self.test_globals[TEST_BOOTSTAP_SETTING_NAME],
|
||||
TEST_SETTING_VALUE_OVERRIDE
|
||||
)
|
||||
|
||||
def test_bootstrap_settings_overrides_default(self):
|
||||
self.test_globals[
|
||||
TEST_BOOTSTAP_SETTING_NAME
|
||||
] = TEST_SETTING_VALUE_OVERRIDE
|
||||
|
||||
self.setting_namespace.update_globals()
|
||||
|
||||
self.assertEqual(
|
||||
self.test_globals[TEST_BOOTSTAP_SETTING_NAME],
|
||||
TEST_SETTING_VALUE_OVERRIDE
|
||||
)
|
||||
|
||||
def test_bootstrap_default(self):
|
||||
self.setting_namespace.update_globals()
|
||||
|
||||
self.assertEqual(
|
||||
self.test_globals[TEST_BOOTSTAP_SETTING_NAME], 'value default'
|
||||
)
|
||||
Reference in New Issue
Block a user