From 666335f3a70909c5b0a6cfa30a4e4a1a92c9ea8f Mon Sep 17 00:00:00 2001 From: Swen Kooij Date: Sat, 22 Oct 2016 21:59:42 +0300 Subject: [PATCH] Added a default value for LocalizedField --- localized_fields/fields/localized_field.py | 3 +++ tests/test_localized_field.py | 27 ++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/localized_fields/fields/localized_field.py b/localized_fields/fields/localized_field.py index 156e631..1e04c41 100644 --- a/localized_fields/fields/localized_field.py +++ b/localized_fields/fields/localized_field.py @@ -17,6 +17,9 @@ class LocalizedField(HStoreField): def __init__(self, *args, **kwargs): """Initializes a new instance of :see:LocalizedValue.""" + if 'default' not in kwargs: + kwargs['default'] = LocalizedValue() + super(LocalizedField, self).__init__(*args, **kwargs) @staticmethod diff --git a/tests/test_localized_field.py b/tests/test_localized_field.py index a1c972d..89585b6 100644 --- a/tests/test_localized_field.py +++ b/tests/test_localized_field.py @@ -235,6 +235,33 @@ class LocalizedFieldTestCase(TestCase): assert not LocalizedField().clean(None) assert not LocalizedField().clean(['huh']) + @staticmethod + def test_default_value(): + """Tests whether the default value is a :see:LocalizedValue + instance.""" + + field = LocalizedField() + + assert field.default + assert isinstance(field.default, LocalizedValue) + + for lang_code, _ in settings.LANGUAGES: + assert not field.default.get(lang_code) + + @staticmethod + def test_default_value_override(): + """Tests whether the default value of a field + can correctly be overriden.""" + + default_value = LocalizedValue(get_init_values()) + field = LocalizedField(default=default_value) + + assert field.default + assert isinstance(field.default, LocalizedValue) + + for lang_code, _ in settings.LANGUAGES: + assert default_value.get(lang_code) == field.default.get(lang_code) + @staticmethod def test_formfield(): """Tests whether the :see:formfield function