diff options
| author | Tim Schaffer <timshaffer@me.com> | 2014-06-10 22:52:14 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2014-06-10 23:04:24 +0200 |
| commit | a1c6cd6a167f90fc4dfd76b2a2de87bc617b26e6 (patch) | |
| tree | 3d6f0db87112c591d3c8a16dfdc4a04a4acc2f75 | |
| parent | 868ff4e37c1e4cfaf7283496c24f6e711ad66005 (diff) | |
Fixed #22780 -- Checked that LOCALE_PATHS is really a tuple
| -rw-r--r-- | django/conf/__init__.py | 2 | ||||
| -rw-r--r-- | tests/settings_tests/tests.py | 21 |
2 files changed, 22 insertions, 1 deletions
diff --git a/django/conf/__init__.py b/django/conf/__init__.py index 2a4fae8878..5ad52fea23 100644 --- a/django/conf/__init__.py +++ b/django/conf/__init__.py @@ -98,7 +98,7 @@ class Settings(BaseSettings): % (self.SETTINGS_MODULE, e) ) - tuple_settings = ("INSTALLED_APPS", "TEMPLATE_DIRS") + tuple_settings = ("INSTALLED_APPS", "TEMPLATE_DIRS", "LOCALE_PATHS") self._explicit_settings = set() for setting in dir(mod): if setting.isupper(): diff --git a/tests/settings_tests/tests.py b/tests/settings_tests/tests.py index 6b2ca3e0a5..dc0d2a4e99 100644 --- a/tests/settings_tests/tests.py +++ b/tests/settings_tests/tests.py @@ -436,3 +436,24 @@ class IsOverriddenTest(TestCase): self.assertFalse(settings.is_overridden('TEMPLATE_LOADERS')) with override_settings(TEMPLATE_LOADERS=[]): self.assertTrue(settings.is_overridden('TEMPLATE_LOADERS')) + + +class TestTupleSettings(unittest.TestCase): + """ + Make sure settings that should be tuples throw ImproperlyConfigured if they + are set to a string instead of a tuple. + """ + tuple_settings = ("INSTALLED_APPS", "TEMPLATE_DIRS", "LOCALE_PATHS") + + def test_tuple_settings(self): + settings_module = ModuleType('fake_settings_module') + settings_module.SECRET_KEY = 'foo' + for setting in self.tuple_settings: + setattr(settings_module, setting, ('non_tuple_value')) + sys.modules['fake_settings_module'] = settings_module + try: + with self.assertRaises(ImproperlyConfigured): + s = Settings('fake_settings_module') + finally: + del sys.modules['fake_settings_module'] + delattr(settings_module, setting) |
