Exemplo n.º 1
0
    def test_module(self):
        settings_module = ModuleType('fake_settings_module')
        settings_module.SECRET_KEY = 'foo'
        sys.modules['fake_settings_module'] = settings_module
        try:
            s = Settings('fake_settings_module')

            self.assertTrue(s.is_overridden('SECRET_KEY'))
            self.assertFalse(s.is_overridden('ALLOWED_HOSTS'))
        finally:
            del sys.modules['fake_settings_module']
Exemplo n.º 2
0
    def test_module(self):
        settings_module = ModuleType("fake_settings_module")
        settings_module.SECRET_KEY = "foo"
        sys.modules["fake_settings_module"] = settings_module
        try:
            s = Settings("fake_settings_module")

            self.assertTrue(s.is_overridden("SECRET_KEY"))
            self.assertFalse(s.is_overridden("ALLOWED_HOSTS"))
        finally:
            del sys.modules["fake_settings_module"]
Exemplo n.º 3
0
    def test_module(self):
        settings_module = ModuleType('fake_settings_module')
        settings_module.SECRET_KEY = 'foo'
        sys.modules['fake_settings_module'] = settings_module
        try:
            s = Settings('fake_settings_module')

            self.assertTrue(s.is_overridden('SECRET_KEY'))
            self.assertFalse(s.is_overridden('ALLOWED_HOSTS'))
        finally:
            del sys.modules['fake_settings_module']
Exemplo n.º 4
0
    def test_module(self):
        settings_module = ModuleType("fake_settings_module")
        settings_module.SECRET_KEY = "foo"
        settings_module.USE_TZ = False
        sys.modules["fake_settings_module"] = settings_module
        try:
            s = Settings("fake_settings_module")

            self.assertTrue(s.is_overridden("SECRET_KEY"))
            self.assertFalse(s.is_overridden("ALLOWED_HOSTS"))
        finally:
            del sys.modules["fake_settings_module"]
Exemplo n.º 5
0
 def test_session_verification_deprecation_neither(self):
     self.settings_module.MIDDLEWARE_CLASSES = []
     sys.modules['fake_settings_module'] = self.settings_module
     with warnings.catch_warnings(record=True) as warn:
         warnings.filterwarnings('always')
         Settings('fake_settings_module')
     self.assertEqual(len(warn), 0)
Exemplo n.º 6
0
 def test_no_secret_key(self):
     settings_module = ModuleType('fake_settings_module')
     sys.modules['fake_settings_module'] = settings_module
     msg = 'The SECRET_KEY setting must not be empty.'
     try:
         with self.assertRaisesMessage(ImproperlyConfigured, msg):
             Settings('fake_settings_module')
     finally:
         del sys.modules['fake_settings_module']
Exemplo n.º 7
0
 def test_settings_init_warning(self):
     settings_module = ModuleType('fake_settings_module')
     settings_module.SECRET_KEY = 'foo'
     settings_module.PASSWORD_RESET_TIMEOUT_DAYS = 2
     sys.modules['fake_settings_module'] = settings_module
     try:
         with self.assertRaisesMessage(RemovedInDjango40Warning, self.msg):
             Settings('fake_settings_module')
     finally:
         del sys.modules['fake_settings_module']
Exemplo n.º 8
0
 def test_session_verification_deprecation_both(self):
     self.settings_module.MIDDLEWARE_CLASSES = [
         'django.contrib.auth.middleware.AuthenticationMiddleware',
         'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
     ]
     sys.modules['fake_settings_module'] = self.settings_module
     with warnings.catch_warnings(record=True) as warn:
         warnings.filterwarnings('always')
         Settings('fake_settings_module')
     self.assertEqual(len(warn), 0)
Exemplo n.º 9
0
 def test_settings_init_warning(self):
     settings_module = ModuleType('fake_settings_module')
     settings_module.FILE_CHARSET = 'latin1'
     settings_module.SECRET_KEY = 'ABC'
     sys.modules['fake_settings_module'] = settings_module
     try:
         with self.assertRaisesMessage(RemovedInDjango31Warning, self.msg):
             Settings('fake_settings_module')
     finally:
         del sys.modules['fake_settings_module']
Exemplo n.º 10
0
 def test_settings_init_warning(self):
     settings_module = ModuleType('fake_settings_module')
     settings_module.DEFAULT_CONTENT_TYPE = 'text/xml'
     settings_module.SECRET_KEY = 'abc'
     sys.modules['fake_settings_module'] = settings_module
     try:
         with self.assertRaisesMessage(RemovedInDjango30Warning, self.msg):
             Settings('fake_settings_module')
     finally:
         del sys.modules['fake_settings_module']
Exemplo n.º 11
0
 def test_settings_init_warning(self):
     settings_module = ModuleType("fake_settings_module")
     settings_module.USE_TZ = False
     settings_module.CSRF_COOKIE_MASKED = True
     sys.modules["fake_settings_module"] = settings_module
     try:
         with self.assertRaisesMessage(RemovedInDjango50Warning, self.msg):
             Settings("fake_settings_module")
     finally:
         del sys.modules["fake_settings_module"]
Exemplo n.º 12
0
 def test_settings_init_warning(self):
     settings_module = ModuleType("fake_settings_module")
     settings_module.SECRET_KEY = "foo"
     settings_module.USE_TZ = True
     settings_module.USE_L10N = False
     sys.modules["fake_settings_module"] = settings_module
     try:
         with self.assertRaisesMessage(RemovedInDjango50Warning, self.msg):
             Settings("fake_settings_module")
     finally:
         del sys.modules["fake_settings_module"]
Exemplo n.º 13
0
 def test_tuple_settings(self):
     settings_module = ModuleType('fake_settings_module')
     settings_module.SECRET_KEY = 'foo'
     for setting in self.list_or_tuple_settings:
         setattr(settings_module, setting, ('non_list_or_tuple_value'))
         sys.modules['fake_settings_module'] = settings_module
         try:
             with self.assertRaises(ImproperlyConfigured):
                 Settings('fake_settings_module')
         finally:
             del sys.modules['fake_settings_module']
             delattr(settings_module, setting)
Exemplo n.º 14
0
 def test_use_both_settings_init_error(self):
     msg = ('PASSWORD_RESET_TIMEOUT_DAYS/PASSWORD_RESET_TIMEOUT are '
            'mutually exclusive.')
     settings_module = ModuleType('fake_settings_module')
     settings_module.SECRET_KEY = 'foo'
     settings_module.PASSWORD_RESET_TIMEOUT_DAYS = 2
     settings_module.PASSWORD_RESET_TIMEOUT = 2000
     sys.modules['fake_settings_module'] = settings_module
     try:
         with self.assertRaisesMessage(ImproperlyConfigured, msg):
             Settings('fake_settings_module')
     finally:
         del sys.modules['fake_settings_module']
Exemplo n.º 15
0
 def _load_settings(self):
     """
     Helper function, which ensures that the settings module is reloaded
     cleanly. This allows us to modify the environment, files or other data
     sources, which are loaded inside the settings module, then run multiple
     tests in a row. Without clean reloads, the settings module would be
     cached and changes may not apply properly.
     """
     from importlib import reload, import_module
     settings_module_name = "bordplade.settings.dev"
     settings_module = import_module(settings_module_name)
     reload(settings_module)
     return Settings(settings_module_name)
Exemplo n.º 16
0
 def test_session_verification_deprecation_no_verification(self):
     self.settings_module.MIDDLEWARE_CLASSES = ['django.contrib.auth.middleware.AuthenticationMiddleware']
     sys.modules['fake_settings_module'] = self.settings_module
     with warnings.catch_warnings(record=True) as warn:
         warnings.filterwarnings('always')
         Settings('fake_settings_module')
     self.assertEqual(
         force_text(warn[0].message),
         "Session verification will become mandatory in Django 2.0. "
         "Please add 'django.contrib.auth.middleware.SessionAuthenticationMiddleware' "
         "to your MIDDLEWARE_CLASSES setting when you are ready to opt-in after "
         "reading the upgrade considerations in the 1.8 release notes.",
     )
Exemplo n.º 17
0
 def test_use_tz_false_deprecation(self):
     settings_module = ModuleType('fake_settings_module')
     settings_module.SECRET_KEY = 'foo'
     sys.modules['fake_settings_module'] = settings_module
     msg = (
         'The default value of USE_TZ will change from False to True in '
         'Django 5.0. Set USE_TZ to False in your project settings if you '
         'want to keep the current default behavior.')
     try:
         with self.assertRaisesMessage(RemovedInDjango50Warning, msg):
             Settings('fake_settings_module')
     finally:
         del sys.modules['fake_settings_module']
Exemplo n.º 18
0
    def test_use_deprecated_pytz_deprecation(self):
        settings_module = ModuleType('fake_settings_module')
        settings_module.USE_DEPRECATED_PYTZ = True
        settings_module.USE_TZ = True
        sys.modules['fake_settings_module'] = settings_module
        try:
            with self.assertRaisesMessage(RemovedInDjango50Warning, USE_DEPRECATED_PYTZ_DEPRECATED_MSG):
                Settings('fake_settings_module')
        finally:
            del sys.modules['fake_settings_module']

        holder = LazySettings()
        with self.assertRaisesMessage(RemovedInDjango50Warning, USE_DEPRECATED_PYTZ_DEPRECATED_MSG):
            holder.configure(USE_DEPRECATED_PYTZ=True)
Exemplo n.º 19
0
    def handle(self, **options):
        from django.conf import settings, Settings, global_settings

        # Because settings are imported lazily, we need to explicitly load them.
        settings._setup()

        user_settings = module_to_dict(settings._wrapped)
        default = options['default']
        default_settings = module_to_dict(Settings(default) if default else global_settings)
        output_func = {
            'hash': self.output_hash,
            'unified': self.output_unified,
        }[options['output']]
        return '\n'.join(output_func(user_settings, default_settings, **options))
Exemplo n.º 20
0
 def test_tuple_settings(self):
     settings_module = ModuleType("fake_settings_module")
     settings_module.SECRET_KEY = "foo"
     msg = "The %s setting must be a list or a tuple."
     for setting in self.list_or_tuple_settings:
         setattr(settings_module, setting, ("non_list_or_tuple_value"))
         sys.modules["fake_settings_module"] = settings_module
         try:
             with self.assertRaisesMessage(ImproperlyConfigured,
                                           msg % setting):
                 Settings("fake_settings_module")
         finally:
             del sys.modules["fake_settings_module"]
             delattr(settings_module, setting)
Exemplo n.º 21
0
    def _setup(self, name=None):
        """
        Load the settings module pointed to by the environment variable. This
        is used the first time we need any settings at all, if the user has not
        previously configured the settings manually.
        """
        try:
            settings_module = os.environ[ENVIRONMENT_VARIABLE]
            if not settings_module: # If it's set but is an empty string.
                settings_module = 'DTL.conf.global_settings'
        except:
            settings_module = 'DTL.conf.global_settings'

        self._wrapped = Settings(settings_module)
        self._configure_logging()
Exemplo n.º 22
0
    def handle(self, **options):
        from django.conf import Settings, global_settings, settings

        # Because settings are imported lazily, we need to explicitly load them.
        if not settings.configured:
            settings._setup()

        user_settings = module_to_dict(settings._wrapped)
        default = options["default"]
        default_settings = module_to_dict(
            Settings(default) if default else global_settings)
        output_func = {
            "hash": self.output_hash,
            "unified": self.output_unified,
        }[options["output"]]
        return "\n".join(
            output_func(user_settings, default_settings, **options))
Exemplo n.º 23
0
    def handle(self, **options):
        # Inspired by Postfix's "postconf -n".
        from django.conf import settings, Settings, global_settings

        # Because settings are imported lazily, we need to explicitly load them.
        settings._setup()

        user_settings = module_to_dict(settings._wrapped)
        default = options['default']
        default_settings = module_to_dict(Settings(default) if default else global_settings)

        output = []
        for key in sorted(user_settings):
            if key not in default_settings:
                output.append("%s = %s  ###" % (key, user_settings[key]))
            elif user_settings[key] != default_settings[key]:
                output.append("%s = %s" % (key, user_settings[key]))
            elif options['all']:
                output.append("### %s = %s" % (key, user_settings[key]))
        return '\n'.join(output)
Exemplo n.º 24
0
def configure(module=None, client=KazooClient, holder=ZooKeeperSettingsHolder):
    if module is None:
        try:
            module = os.environ[ENVIRONMENT_VARIABLE]
            if not module:
                raise KeyError
        except KeyError:
            raise ImproperlyConfigured('%s is not defined, cannot import settings')

    __settings = Settings(module)

    hosts = ','.join(__settings.ZOOKEEPER_HOSTS)
    if hasattr(__settings, 'ZOOKEEPER_SETTINGS_NAMESPACE'):
        hosts = '/'.join((hosts, __settings.ZOOKEEPER_SETTINGS_NAMESPACE))

    logger.debug('Attempting to connect to ZooKeeper at "%s"...', hosts)
    zookeeper = client(hosts=hosts)
    zookeeper.start()

    settings.configure(holder(zookeeper, defaults=__settings))
Exemplo n.º 25
0
def pytest_configure(config):
    from django.conf import Settings, settings as django_settings

    settings = Settings("strut.settings")

    for setting, value in dict(
            DEBUG=True,
            SECRET_KEY="STRUT",
            HOST="localhost",
            WEBSOCKET_HOST="ws://*****:*****@strut",
            RAVEN_CONFIG={},
            CSP_HEADER="script-src 'self'",
    ).items():
        setattr(settings, setting, value)

    django_settings.configure(settings)
Exemplo n.º 26
0
 def test_globbing(self):
     settings = Settings('test_settings')
     self.assertEqual(settings.INSTALLED_APPS,
                      ['parent.app', 'parent.app1', 'parent.app_2'])
Exemplo n.º 27
0
 def test_import_env_int(self):
     storage = Settings('weblate.settings_example')
     import_env_vars({'WEBLATE_FOO': '1234'}, storage)
     self.assertEqual(storage.FOO, 1234)
Exemplo n.º 28
0
 def test_settings_repr(self):
     module = os.environ.get(ENVIRONMENT_VARIABLE)
     lazy_settings = Settings(module)
     expected = '<Settings "%s">' % module
     self.assertEqual(repr(lazy_settings), expected)
Exemplo n.º 29
0
 def test_import_env_raw(self):
     storage = Settings('weblate.settings_example')
     import_env_vars({'WEBLATE_FOO': '(r"/project/(.*)$$",)'}, storage)
     self.assertEqual(storage.FOO, ('/project/(.*)$', ))
Exemplo n.º 30
0
 def test_import_env_tuple(self):
     storage = Settings('weblate.settings_example')
     import_env_vars({'WEBLATE_FOO': '(1, 2)'}, storage)
     self.assertEqual(storage.FOO, (1, 2))
Exemplo n.º 31
0
 def test_import_env_env(self):
     storage = Settings('weblate.settings_example')
     import_env_vars({'WEBLATE_FOO': '"$BAR"', 'BAR': 'baz'}, storage)
     self.assertEqual(storage.FOO, 'baz')
Exemplo n.º 32
0
 def test_import_env_string(self):
     storage = Settings('weblate.settings_example')
     import_env_vars({'WEBLATE_FOO': '"bar"'}, storage)
     self.assertEqual(storage.FOO, 'bar')