1
0
mirror of https://github.com/django/django.git synced 2024-12-29 12:36:08 +00:00
django/tests/forms_tests/field_tests/test_combofield.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

38 lines
1.5 KiB
Python
Raw Normal View History

from django.core.exceptions import ValidationError
from django.forms import CharField, ComboField, EmailField
from django.test import SimpleTestCase
class ComboFieldTest(SimpleTestCase):
def test_combofield_1(self):
f = ComboField(fields=[CharField(max_length=20), EmailField()])
self.assertEqual("test@example.com", f.clean("test@example.com"))
with self.assertRaisesMessage(
ValidationError,
"'Ensure this value has at most 20 characters (it has 28).'",
):
f.clean("longemailaddress@example.com")
with self.assertRaisesMessage(
ValidationError, "'Enter a valid email address.'"
):
f.clean("not an email")
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
f.clean("")
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
f.clean(None)
def test_combofield_2(self):
f = ComboField(fields=[CharField(max_length=20), EmailField()], required=False)
self.assertEqual("test@example.com", f.clean("test@example.com"))
with self.assertRaisesMessage(
ValidationError,
"'Ensure this value has at most 20 characters (it has 28).'",
):
f.clean("longemailaddress@example.com")
with self.assertRaisesMessage(
ValidationError, "'Enter a valid email address.'"
):
f.clean("not an email")
self.assertEqual("", f.clean(""))
self.assertEqual("", f.clean(None))