def test_merge_settings(self): ini_filename = pkg_resources.resource_filename('djangofloor.tests', 'test_conf.ini') merger = SettingMerger('test_project', 'djangofloor.tests.default_settings_module', 'djangofloor.tests.project_settings_module', user_settings_module.__file__, ini_filename, 'djangofloor.tests.test_settings.ini_mapping') merger.process() expected_dict = {'PROJECT_NAME': 'test_project', 'S_DEFAULT': True, 'S_USER': True, 'S_PROJECT': True, 'S_PROJECT_USER': True, 'S_DEFAULT_USER': True, 'S_DEFAULT_PROJECT_USER': True, 'S_DEFAULT_PROJECT': True, 'S_DEFAULT_INI': True, 'S_DEFAULT_INI_USER': True, 'S_DEFAULT_PROJECT_INI': True, 'S_DEFAULT_PROJECT_INI_USER': True, 'S_INI_USER': True, 'S_PROJECT_INI': True, 'S_PROJECT_INI_USER': True, 'S_BASE_LIST': [1], 'S_EXPANDED_LIST': [1, 1, 2], 'S_LIST': [True, True, True, True, ], 'Z_CALLABLE': True, 'S_DICT': {0: 1, True: True}, 'S_SET': {0, 1, True}, 'S_TUPLE': (True, True, True, True), } for key in expected_dict: self.assertTrue(key in merger.settings) for key in merger.settings: self.assertTrue(key in expected_dict) for key in expected_dict: self.assertEqual(expected_dict[key], merger.settings[key]) self.assertEqual(expected_dict, merger.settings)
def test_load_settings(self): merger = SettingMerger('test_project', 'djangofloor.empty', 'djangofloor.empty', 'djangofloor.empty', None, None) merger.process() self.assertEqual({'PROJECT_NAME': 'test_project'}, merger.settings)
Only variables in uppercase (like INSTALLED_APPS) are taken into account. Only variables defined in djangofloor.defaults or in project-specific settings are taken into account. If VARIABLE is uppercase and if VARIABLE_HELP exists, then VARIABLE is shown with command `manage.py config`. """ from __future__ import unicode_literals import os from djangofloor.utils import SettingMerger __author__ = 'Matthieu Gallet' PROJECT_SETTINGS_MODULE_NAME = os.environ.get('DJANGOFLOOR_PROJECT_DEFAULTS', '') USER_SETTINGS_PATH = os.environ.get('DJANGOFLOOR_PYTHON_SETTINGS', '') DJANGOFLOOR_CONFIG_PATH = os.environ.get('DJANGOFLOOR_INI_SETTINGS', '') DJANGOFLOOR_MAPPING = os.environ.get('DJANGOFLOOR_MAPPING', '') PROJECT_NAME = os.environ.get('DJANGOFLOOR_PROJECT_NAME', 'djangofloor') merger = SettingMerger(PROJECT_NAME, 'djangofloor.defaults', PROJECT_SETTINGS_MODULE_NAME, USER_SETTINGS_PATH, DJANGOFLOOR_CONFIG_PATH, DJANGOFLOOR_MAPPING) merger.process() merger.post_process() __settings = globals() __settings_origin = merger.settings_origin __settings_original_value = merger.settings_original_value __settings.update(merger.settings)