diff --git a/configurations/values.py b/configurations/values.py index eaabc03..3458e8d 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/tests/test_values.py b/tests/test_values.py index 849103f..8052b9a 100644 --- a/tests/test_values.py +++ b/tests/test_values.py @@ -215,6 +215,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'):