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)
Example #3
0
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)