diff --git a/tests/test_field.py b/tests/test_field.py index 809ff04..3bd896c 100644 --- a/tests/test_field.py +++ b/tests/test_field.py @@ -15,6 +15,25 @@ from .fake_model import get_fake_model class LocalizedFieldTestCase(TestCase): """Tests the :see:LocalizedField class.""" + @staticmethod + def test_init(): + """Tests whether the :see:__init__ function + correctly handles parameters""" + + field = LocalizedField(blank=True) + assert field.required == [] + + field = LocalizedField(blank=False) + assert field.required == [settings.LANGUAGE_CODE] + + field = LocalizedField(required=True) + assert field.required == [lang_code for lang_code, _ in + settings.LANGUAGES] + + field = LocalizedField(required=False) + assert field.required == [] + + @staticmethod def test_from_db_value(): """Tests whether the :see:from_db_value function @@ -158,6 +177,34 @@ class LocalizedFieldTestCase(TestCase): LocalizedFieldForm ) + # case optional filling + field = LocalizedField(blank=True, required=[]) + assert not field.formfield().required + for field in field.formfield().fields: + assert not field.required + + # case required for any language + field = LocalizedField(blank=False, required=[]) + assert field.formfield().required + for field in field.formfield().fields: + assert not field.required + + # case required for specific languages + required_langs = ['ro', 'nl'] + field = LocalizedField(blank=False, required=required_langs) + assert field.formfield().required + for field in field.formfield().fields: + if field.label in required_langs: + assert field.required + else: + assert not field.required + + # case required for all languages + field = LocalizedField(blank=False, required=True) + assert field.formfield().required + for field in field.formfield().fields: + assert field.required + def test_required_all(self): """Tests whether passing required=True properly validates that all languages are filled in.""" diff --git a/tests/test_form.py b/tests/test_form.py index 556a8b3..0bedcc1 100644 --- a/tests/test_form.py +++ b/tests/test_form.py @@ -11,8 +11,8 @@ class LocalizedFieldFormTestCase(TestCase): def test_init(): """Tests whether the constructor correctly creates a field for every language.""" - - form = LocalizedFieldForm(required_langs=[settings.LANGUAGE_CODE]) + # case required for specific language + form = LocalizedFieldForm(required=[settings.LANGUAGE_CODE]) for (lang_code, _), field in zip(settings.LANGUAGES, form.fields): assert field.label == lang_code @@ -22,6 +22,25 @@ class LocalizedFieldFormTestCase(TestCase): else: assert not field.required + # case required for all languages + form = LocalizedFieldForm(required=True) + assert form.required + for field in form.fields: + assert field.required + + # case optional filling + form = LocalizedFieldForm(required=False) + assert not form.required + for field in form.fields: + assert not field.required + + # case required for any language + form = LocalizedFieldForm(required=[]) + assert form.required + for field in form.fields: + assert not field.required + + @staticmethod def test_compress(): """Tests whether the :see:compress function