From f8ebb564da0c228fc7568a57aad0248b54aeb0df Mon Sep 17 00:00:00 2001 From: He Weiwei Date: Tue, 2 Sep 2014 16:33:47 +0800 Subject: [PATCH] fix bug of setup_value func for EmailURLValue --- configurations/values.py | 2 +- tests/test_values.py | 28 +++++++++++++++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/configurations/values.py b/configurations/values.py index eaabc03..f517b7b 100644 --- a/configurations/values.py +++ b/configurations/values.py @@ -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): diff --git a/tests/test_values.py b/tests/test_values.py index 849103f..3a9fd9e 100644 --- a/tests/test_values.py +++ b/tests/test_values.py @@ -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)