summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2012-07-09 14:07:01 +0200
committerClaude Paroz <claude@2xlibre.net>2012-07-09 14:10:54 +0200
commitd9db1d3373e9bee37258d7f6b50bea80c767a28c (patch)
tree79cac69e69fbde1b8413a725ce899eca7a1fd8bf
parent1d2982362df1dbd9b08ffcc1d2506b2e3789250e (diff)
Added supplementary check for CUIT number of ar localflavor
Thanks Kevin Schaul for the initial patch.
-rw-r--r--django/contrib/localflavor/ar/forms.py3
-rw-r--r--tests/regressiontests/localflavor/ar/tests.py8
2 files changed, 8 insertions, 3 deletions
diff --git a/django/contrib/localflavor/ar/forms.py b/django/contrib/localflavor/ar/forms.py
index ffc2d177c0..dc4235f9dd 100644
--- a/django/contrib/localflavor/ar/forms.py
+++ b/django/contrib/localflavor/ar/forms.py
@@ -81,6 +81,7 @@ class ARCUITField(RegexField):
default_error_messages = {
'invalid': _('Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.'),
'checksum': _("Invalid CUIT."),
+ 'legal_type': _('Invalid legal type. Type must be 27, 20, 23 or 30.'),
}
def __init__(self, max_length=None, min_length=None, *args, **kwargs):
@@ -96,6 +97,8 @@ class ARCUITField(RegexField):
if value in EMPTY_VALUES:
return ''
value, cd = self._canon(value)
+ if not value[:2] in ['27', '20', '23', '30']:
+ raise ValidationError(self.error_messages['legal_type'])
if self._calc_cd(value) != cd:
raise ValidationError(self.error_messages['checksum'])
return self._format(value, cd)
diff --git a/tests/regressiontests/localflavor/ar/tests.py b/tests/regressiontests/localflavor/ar/tests.py
index efc2025fd2..82c2bd491a 100644
--- a/tests/regressiontests/localflavor/ar/tests.py
+++ b/tests/regressiontests/localflavor/ar/tests.py
@@ -81,6 +81,7 @@ class ARLocalFlavorTests(SimpleTestCase):
def test_ARCUITField(self):
error_format = ['Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.']
error_invalid = ['Invalid CUIT.']
+ error_legal_type = [u'Invalid legal type. Type must be 27, 20, 23 or 30.']
valid = {
'20-10123456-9': '20-10123456-9',
'20-10123456-9': '20-10123456-9',
@@ -94,8 +95,9 @@ class ARLocalFlavorTests(SimpleTestCase):
'210123456-9': error_format,
'20-10123456': error_format,
'20-10123456-': error_format,
- '20-10123456-5': error_invalid,
- '27-10345678-1': error_invalid,
- '27-10345678-1': error_invalid,
+ '20-10123456-5': error_invalid,
+ '27-10345678-1': error_invalid,
+ '27-10345678-1': error_invalid,
+ '11211111110': error_legal_type,
}
self.assertFieldOutput(ARCUITField, valid, invalid)