diff --git a/configurations/values.py b/configurations/values.py index f517b7b..467a0f9 100644 --- a/configurations/values.py +++ b/configurations/values.py @@ -266,7 +266,8 @@ class ValidationMixin(object): else: raise ValueError('Cannot use validator of ' '{0} ({1!r})'.format(self, self.validator)) - self.to_python(self.default) + if self.default: + self.to_python(self.default) def to_python(self, value): try: diff --git a/docs/patterns.rst b/docs/patterns.rst index 7b199c3..a064fde 100644 --- a/docs/patterns.rst +++ b/docs/patterns.rst @@ -71,7 +71,7 @@ a ``Configuration`` class:: from configurations import Configuration - class Prod(Configuration, FullPageCaching): + class Prod(FullPageCaching, Configuration): DEBUG = False # ... diff --git a/tests/test_values.py b/tests/test_values.py index 3a9fd9e..2c3d5ec 100644 --- a/tests/test_values.py +++ b/tests/test_values.py @@ -216,6 +216,14 @@ class ValueTests(TestCase): with env(DJANGO_TEST='httb://spam.eggs'): self.assertRaises(ValueError, value.setup, 'TEST') + def test_url_values_with_no_default(self): + value = URLValue() # no default + with env(DJANGO_TEST='http://spam.eggs'): + self.assertEqual(value.setup('TEST'), 'http://spam.eggs') + + def test_url_values_with_wrong_default(self): + self.assertRaises(ValueError, URLValue, 'httb://spam.eggs') + def test_ip_values(self): value = IPValue('0.0.0.0') with env(DJANGO_TEST='127.0.0.1'):