fix bug of setup_value func for EmailURLValue

This commit is contained in:
He Weiwei 2014-09-02 16:33:47 +08:00 committed by He Weiwei
parent 7af6d9e7c5
commit f8ebb564da
2 changed files with 28 additions and 2 deletions

View file

@ -17,7 +17,7 @@ def setup_value(target, name, value):
setattr(target, name, value.value)
if value.multiple:
for multiple_name, multiple_value in actual_value.items():
setattr(target, multiple_name, multiple_value.value)
setattr(target, multiple_name, multiple_value)
class Value(object):

View file

@ -14,7 +14,8 @@ from configurations.values import (Value, BooleanValue, IntegerValue,
RegexValue, PathValue, SecretValue,
DatabaseURLValue, EmailURLValue,
CacheURLValue, BackendsValue,
CastingMixin, SearchURLValue)
CastingMixin, SearchURLValue,
setup_value)
@contextmanager
@ -358,3 +359,28 @@ class ValueTests(TestCase):
value = SetValue([1, 2])
self.assertEqual(value.default, set([1, 2]))
self.assertEqual(value.value, set([1, 2]))
def test_setup_value(self):
class Target(object):
pass
value = EmailURLValue()
with env(EMAIL_URL='smtps://user@domain.com:password@smtp.example.com:587'):
setup_value(Target, 'EMAIL', value)
self.assertEqual(Target.EMAIL, {
'EMAIL_BACKEND': 'django.core.mail.backends.smtp.EmailBackend',
'EMAIL_FILE_PATH': '',
'EMAIL_HOST': 'smtp.example.com',
'EMAIL_HOST_PASSWORD': 'password',
'EMAIL_HOST_USER': 'user@domain.com',
'EMAIL_PORT': 587,
'EMAIL_USE_TLS': True
})
self.assertEqual(Target.EMAIL_BACKEND, 'django.core.mail.backends.smtp.EmailBackend')
self.assertEqual(Target.EMAIL_FILE_PATH, '')
self.assertEqual(Target.EMAIL_HOST, 'smtp.example.com')
self.assertEqual(Target.EMAIL_HOST_PASSWORD, 'password')
self.assertEqual(Target.EMAIL_HOST_USER, 'user@domain.com')
self.assertEqual(Target.EMAIL_PORT, 587)
self.assertEqual(Target.EMAIL_USE_TLS, True)