Skip to content

Commit

Permalink
Fixed #15805 - assertFieldOutput should not use assertRaisesRegexp
Browse files Browse the repository at this point in the history
Thanks to julien for the report and patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@16303 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information
spookylukey committed May 31, 2011
1 parent caefdc8 commit 93e9d91
Show file tree
Hide file tree
Showing 8 changed files with 39 additions and 20 deletions.
11 changes: 11 additions & 0 deletions tests/regressiontests/forms/localflavor/__init__.py
@@ -0,0 +1,11 @@
from django.forms import EmailField
from utils import LocalFlavorTestCase

class AssertFieldOutputTests(LocalFlavorTestCase):

def test_assert_field_output(self):
error_invalid = [u'Enter a valid e-mail address.']
self.assertFieldOutput(EmailField, {'a@a.com': 'a@a.com'}, {'aaa': error_invalid})
self.assertRaises(AssertionError, self.assertFieldOutput, EmailField, {'a@a.com': 'a@a.com'}, {'aaa': error_invalid + [u'Another error']})
self.assertRaises(AssertionError, self.assertFieldOutput, EmailField, {'a@a.com': 'Wrong output'}, {'aaa': error_invalid})
self.assertRaises(AssertionError, self.assertFieldOutput, EmailField, {'a@a.com': 'a@a.com'}, {'aaa': [u'Come on, gimme some well formatted data, dude.']})
4 changes: 2 additions & 2 deletions tests/regressiontests/forms/localflavor/au.py
Expand Up @@ -20,14 +20,14 @@ def test_AUStateSelect(self):
self.assertEqual(f.render('state', 'NSW'), out)

def test_AUPostCodeField(self):
error_format = [u'Enter a 4 digit post code.']
error_format = [u'Enter a 4 digit postcode.']
valid = {
'1234': '1234',
'2000': '2000',
}
invalid = {
'abcd': error_format,
'20001': error_format,
'20001': [u'Ensure this value has at most 4 characters (it has 5).'] + error_format,
}
self.assertFieldOutput(AUPostCodeField, valid, invalid)

Expand Down
2 changes: 1 addition & 1 deletion tests/regressiontests/forms/localflavor/hr.py
Expand Up @@ -158,7 +158,7 @@ def test_HROIBField(self):
'12345678901': '12345678901',
}
invalid = {
'1234567890': error_invalid,
'1234567890': [u'Ensure this value has at least 11 characters (it has 10).'] + error_invalid,
'ABCDEFGHIJK': error_invalid,
}
self.assertFieldOutput(HROIBField, valid, invalid)
Expand Down
2 changes: 1 addition & 1 deletion tests/regressiontests/forms/localflavor/pt.py
Expand Up @@ -17,7 +17,7 @@ def test_PTZipCodeField(self):
self.assertFieldOutput(PTZipCodeField, valid, invalid)

def test_PTPhoneNumberField(self):
error_format = [u'Phone numbers must have 9 digits, or start by + or 00']
error_format = [u'Phone numbers must have 9 digits, or start by + or 00.']
valid = {
'917845189': '917845189',
'91 784 5189': '917845189',
Expand Down
14 changes: 8 additions & 6 deletions tests/regressiontests/forms/localflavor/ro.py
Expand Up @@ -66,7 +66,7 @@ def test_ROCIFField(self):
invalid = {
'21694680': error_invalid,
'21694680000': error_atmost,
'0': error_atleast,
'0': error_atleast + error_invalid,
}
self.assertFieldOutput(ROCIFField, valid, invalid)

Expand All @@ -81,7 +81,7 @@ def test_ROCNPField(self):
'1981211204487': error_invalid,
'1981232204489': error_invalid,
'9981211204489': error_invalid,
'9981211209': error_atleast,
'9981211209': error_atleast + error_invalid,
'19812112044891': error_atmost,
}
self.assertFieldOutput(ROCNPField, valid, invalid)
Expand Down Expand Up @@ -109,32 +109,34 @@ def test_ROIBANField(self):
invalid = {
'RO56RZBR0000060003291176': error_invalid,
'AT61 1904 3002 3457 3201': error_invalid,
'RO56RZBR000006000329117': error_atleast,
'RO56RZBR000006000329117': error_atleast + error_invalid,
}
self.assertFieldOutput(ROIBANField, valid, invalid)

def test_ROPhoneNumberField(self):
error_format = [u'Phone numbers must be in XXXX-XXXXXX format.']
error_atleast = [u'Ensure this value has at least 10 characters (it has 9).']
error_invalid = [u'Phone numbers must be in XXXX-XXXXXX format.']
valid = {
'0264485936': '0264485936',
'(0264)-485936': '0264485936',
}
invalid = {
'02644859368': error_format,
'026448593': error_atleast,
'026448593': error_atleast + error_invalid,
}
self.assertFieldOutput(ROPhoneNumberField, valid, invalid)

def test_ROPostalCodeField(self):
error_atleast = [u'Ensure this value has at least 6 characters (it has 5).']
error_atmost = [u'Ensure this value has at most 6 characters (it has 7).']
error_invalid = [u'Enter a valid postal code in the format XXXXXX']

valid = {
'400473': '400473',
}
invalid = {
'40047': error_atleast,
'4004731': error_atmost,
'40047': error_atleast + error_invalid,
'4004731': error_atmost + error_invalid,
}
self.assertFieldOutput(ROPostalCodeField, valid, invalid)
22 changes: 13 additions & 9 deletions tests/regressiontests/forms/localflavor/utils.py
@@ -1,3 +1,5 @@
from __future__ import with_statement

from django.core.exceptions import ValidationError
from django.core.validators import EMPTY_VALUES
from django.forms.fields import CharField
Expand Down Expand Up @@ -42,17 +44,19 @@ def assertFieldOutput(self, fieldclass, valid, invalid, field_args=None,
self.assertEqual(optional.clean(input), output)
# test invalid inputs
for input, errors in invalid.items():
self.assertRaisesRegexp(ValidationError, unicode(errors),
required.clean, input
)
self.assertRaisesRegexp(ValidationError, unicode(errors),
optional.clean, input
)
with self.assertRaises(ValidationError) as context_manager:
required.clean(input)
self.assertEqual(context_manager.exception.messages, errors)

with self.assertRaises(ValidationError) as context_manager:
optional.clean(input)
self.assertEqual(context_manager.exception.messages, errors)
# test required inputs
error_required = u'This field is required'
error_required = [u'This field is required.']
for e in EMPTY_VALUES:
self.assertRaisesRegexp(ValidationError, error_required,
required.clean, e)
with self.assertRaises(ValidationError) as context_manager:
required.clean(e)
self.assertEqual(context_manager.exception.messages, error_required)
self.assertEqual(optional.clean(e), empty_value)
# test that max_length and min_length are always accepted
if issubclass(fieldclass, CharField):
Expand Down
1 change: 1 addition & 0 deletions tests/regressiontests/forms/localflavortests.py
@@ -1,3 +1,4 @@
from localflavor import AssertFieldOutputTests
from localflavor.ar import ARLocalFlavorTests
from localflavor.at import ATLocalFlavorTests
from localflavor.au import AULocalFlavorTests
Expand Down
3 changes: 2 additions & 1 deletion tests/regressiontests/forms/tests/__init__.py
Expand Up @@ -46,5 +46,6 @@
TRLocalFlavorTests,
USLocalFlavorTests,
UYLocalFlavorTests,
ZALocalFlavorTests
ZALocalFlavorTests,
AssertFieldOutputTests,
)

0 comments on commit 93e9d91

Please sign in to comment.