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:
Roberto Rosario
2019-12-09 00:21:15 -04:00
parent d345f8e838
commit 4e65a436c7
5 changed files with 132 additions and 11 deletions

View 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'
)