from django.conf import settings from django.core.exceptions import ValidationError from django.forms.widgets import FILE_INPUT_CONTRADICTION from django.test import TestCase from localized_fields.forms import LocalizedFileFieldForm class LocalizedFileFieldFormTestCase(TestCase): """Tests the workings of the :see:LocalizedFileFieldForm class.""" def test_clean(self): """Tests whether the :see:clean function is working properly.""" formfield = LocalizedFileFieldForm(required=True) with self.assertRaises(ValidationError): formfield.clean([]) with self.assertRaises(ValidationError): formfield.clean([], {"en": None}) with self.assertRaises(ValidationError): formfield.clean("badvalue") with self.assertRaises(ValidationError): value = [FILE_INPUT_CONTRADICTION] * len(settings.LANGUAGES) formfield.clean(value) formfield = LocalizedFileFieldForm(required=False) formfield.clean([""] * len(settings.LANGUAGES)) formfield.clean(["", ""], ["", ""]) def test_bound_data(self): """Tests whether the :see:bound_data function is returns correctly value.""" formfield = LocalizedFileFieldForm() assert formfield.bound_data([""], None) == [""] initial = dict([(lang, "") for lang, _ in settings.LANGUAGES]) value = [None] * len(settings.LANGUAGES) expected_value = [""] * len(settings.LANGUAGES) assert formfield.bound_data(value, initial) == expected_value