django-localized-fields/tests/test_file_field_form.py
2019-10-19 12:44:41 +03:00

41 lines
1.5 KiB
Python

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