summaryrefslogtreecommitdiff
path: root/tests/forms_tests
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2013-03-14 16:19:59 +0100
committerClaude Paroz <claude@2xlibre.net>2013-03-14 17:03:43 +0100
commit2f121dfe635b3f497fe1fe03bc8eb97cdf5083b3 (patch)
treed858b3ac2a6ee0beb52a079e98ac065dc0253834 /tests/forms_tests
parent34d098665d9423c0b70add5b8c8231fff9d0f774 (diff)
Fixed #17051 -- Removed some 'invalid' field error messages
When the 'invalid' error message is set at field level, it masks the error message raised by the validator, if any.
Diffstat (limited to 'tests/forms_tests')
-rw-r--r--tests/forms_tests/tests/extra.py30
-rw-r--r--tests/forms_tests/tests/validators.py33
2 files changed, 43 insertions, 20 deletions
diff --git a/tests/forms_tests/tests/extra.py b/tests/forms_tests/tests/extra.py
index 359ad442bc..427d099bb2 100644
--- a/tests/forms_tests/tests/extra.py
+++ b/tests/forms_tests/tests/extra.py
@@ -506,11 +506,11 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '256.125.1.5')
self.assertEqual(f.clean(' fe80::223:6cff:fe8a:2e8a '), 'fe80::223:6cff:fe8a:2e8a')
self.assertEqual(f.clean(' 2a02::223:6cff:fe8a:2e8a '), '2a02::223:6cff:fe8a:2e8a')
- self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '12345:2:3:4')
- self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '1::2:3::4')
- self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, 'foo::223:6cff:fe8a:2e8a')
- self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '1::2:3:4:5:6:7:8')
- self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '1:2')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '12345:2:3:4')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1::2:3::4')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, 'foo::223:6cff:fe8a:2e8a')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1::2:3:4:5:6:7:8')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1:2')
def test_generic_ipaddress_as_ipv4_only(self):
f = GenericIPAddressField(protocol="IPv4")
@@ -535,11 +535,11 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
self.assertFormErrors(['Enter a valid IPv6 address.'], f.clean, '256.125.1.5')
self.assertEqual(f.clean(' fe80::223:6cff:fe8a:2e8a '), 'fe80::223:6cff:fe8a:2e8a')
self.assertEqual(f.clean(' 2a02::223:6cff:fe8a:2e8a '), '2a02::223:6cff:fe8a:2e8a')
- self.assertFormErrors(['Enter a valid IPv6 address.'], f.clean, '12345:2:3:4')
- self.assertFormErrors(['Enter a valid IPv6 address.'], f.clean, '1::2:3::4')
- self.assertFormErrors(['Enter a valid IPv6 address.'], f.clean, 'foo::223:6cff:fe8a:2e8a')
- self.assertFormErrors(['Enter a valid IPv6 address.'], f.clean, '1::2:3:4:5:6:7:8')
- self.assertFormErrors(['Enter a valid IPv6 address.'], f.clean, '1:2')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '12345:2:3:4')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1::2:3::4')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, 'foo::223:6cff:fe8a:2e8a')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1::2:3:4:5:6:7:8')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1:2')
def test_generic_ipaddress_as_generic_not_required(self):
f = GenericIPAddressField(required=False)
@@ -552,11 +552,11 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '256.125.1.5')
self.assertEqual(f.clean(' fe80::223:6cff:fe8a:2e8a '), 'fe80::223:6cff:fe8a:2e8a')
self.assertEqual(f.clean(' 2a02::223:6cff:fe8a:2e8a '), '2a02::223:6cff:fe8a:2e8a')
- self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '12345:2:3:4')
- self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '1::2:3::4')
- self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, 'foo::223:6cff:fe8a:2e8a')
- self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '1::2:3:4:5:6:7:8')
- self.assertFormErrors(['Enter a valid IPv4 or IPv6 address.'], f.clean, '1:2')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '12345:2:3:4')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1::2:3::4')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, 'foo::223:6cff:fe8a:2e8a')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1::2:3:4:5:6:7:8')
+ self.assertFormErrors(['This is not a valid IPv6 address.'], f.clean, '1:2')
def test_generic_ipaddress_normalization(self):
# Test the normalising code
diff --git a/tests/forms_tests/tests/validators.py b/tests/forms_tests/tests/validators.py
index a4cb324815..0598835cff 100644
--- a/tests/forms_tests/tests/validators.py
+++ b/tests/forms_tests/tests/validators.py
@@ -1,16 +1,39 @@
+from __future__ import unicode_literals
+
from django import forms
from django.core import validators
from django.core.exceptions import ValidationError
from django.utils.unittest import TestCase
+class UserForm(forms.Form):
+ full_name = forms.CharField(
+ max_length = 50,
+ validators = [
+ validators.validate_integer,
+ validators.validate_email,
+ ]
+ )
+ string = forms.CharField(
+ max_length = 50,
+ validators = [
+ validators.RegexValidator(
+ regex='^[a-zA-Z]*$',
+ message="Letters only.",
+ )
+ ]
+ )
+
+
class TestFieldWithValidators(TestCase):
def test_all_errors_get_reported(self):
- field = forms.CharField(
- validators=[validators.validate_integer, validators.validate_email]
- )
- self.assertRaises(ValidationError, field.clean, 'not int nor mail')
+ form = UserForm({'full_name': 'not int nor mail', 'string': '2 is not correct'})
+ self.assertRaises(ValidationError, form.fields['full_name'].clean, 'not int nor mail')
+
try:
- field.clean('not int nor mail')
+ form.fields['full_name'].clean('not int nor mail')
except ValidationError as e:
self.assertEqual(2, len(e.messages))
+
+ self.assertFalse(form.is_valid())
+ self.assertEqual(form.errors['string'], ["Letters only."])