diff --git a/django_autoconfig/environment_settings/autoconfig.py b/django_autoconfig/environment_settings/autoconfig.py index 34be1eb..1fee311 100644 --- a/django_autoconfig/environment_settings/autoconfig.py +++ b/django_autoconfig/environment_settings/autoconfig.py @@ -1,8 +1,11 @@ '''Pull settings from environment variables.''' import ast +import logging import os +LOGGER = logging.getLogger(__name__) + def get_settings_from_environment(environ): '''Deduce settings from environment variables''' @@ -11,7 +14,10 @@ def get_settings_from_environment(environ): if not name.startswith('DJANGO_'): continue name = name.replace('DJANGO_', '', 1) - settings[name] = ast.literal_eval(value) + try: + settings[name] = ast.literal_eval(value) + except ValueError as err: + LOGGER.warn("Unable to parse setting %s=%s (%s)", name, value, err) return settings SETTINGS = get_settings_from_environment(os.environ) diff --git a/django_autoconfig/tests/__init__.py b/django_autoconfig/tests/__init__.py index 8bc62dd..9e76d98 100644 --- a/django_autoconfig/tests/__init__.py +++ b/django_autoconfig/tests/__init__.py @@ -202,7 +202,10 @@ def test_environment_settings(self): ''' import django_autoconfig.environment_settings.autoconfig results = django_autoconfig.environment_settings.autoconfig.get_settings_from_environment( - {'DJANGO_BLAH': '"test-value"'}, + { + 'DJANGO_BLAH': '"test-value"', + 'DJANGO_DONTWORK': 'flibble', + }, ) self.assertEqual(results, {'BLAH': 'test-value'})