diff options
| author | Claude Paroz <claude@2xlibre.net> | 2012-07-09 14:07:01 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2012-07-09 14:10:54 +0200 |
| commit | d9db1d3373e9bee37258d7f6b50bea80c767a28c (patch) | |
| tree | 79cac69e69fbde1b8413a725ce899eca7a1fd8bf | |
| parent | 1d2982362df1dbd9b08ffcc1d2506b2e3789250e (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.py | 3 | ||||
| -rw-r--r-- | tests/regressiontests/localflavor/ar/tests.py | 8 |
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) |
