mirror of https://github.com/django/django.git
Added supplementary check for CUIT number of ar localflavor
Thanks Kevin Schaul for the initial patch.
This commit is contained in:
parent
1d2982362d
commit
d9db1d3373
|
@ -81,6 +81,7 @@ class ARCUITField(RegexField):
|
||||||
default_error_messages = {
|
default_error_messages = {
|
||||||
'invalid': _('Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.'),
|
'invalid': _('Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.'),
|
||||||
'checksum': _("Invalid CUIT."),
|
'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):
|
def __init__(self, max_length=None, min_length=None, *args, **kwargs):
|
||||||
|
@ -96,6 +97,8 @@ class ARCUITField(RegexField):
|
||||||
if value in EMPTY_VALUES:
|
if value in EMPTY_VALUES:
|
||||||
return ''
|
return ''
|
||||||
value, cd = self._canon(value)
|
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:
|
if self._calc_cd(value) != cd:
|
||||||
raise ValidationError(self.error_messages['checksum'])
|
raise ValidationError(self.error_messages['checksum'])
|
||||||
return self._format(value, cd)
|
return self._format(value, cd)
|
||||||
|
|
|
@ -81,6 +81,7 @@ class ARLocalFlavorTests(SimpleTestCase):
|
||||||
def test_ARCUITField(self):
|
def test_ARCUITField(self):
|
||||||
error_format = ['Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.']
|
error_format = ['Enter a valid CUIT in XX-XXXXXXXX-X or XXXXXXXXXXXX format.']
|
||||||
error_invalid = ['Invalid CUIT.']
|
error_invalid = ['Invalid CUIT.']
|
||||||
|
error_legal_type = [u'Invalid legal type. Type must be 27, 20, 23 or 30.']
|
||||||
valid = {
|
valid = {
|
||||||
'20-10123456-9': '20-10123456-9',
|
'20-10123456-9': '20-10123456-9',
|
||||||
'20-10123456-9': '20-10123456-9',
|
'20-10123456-9': '20-10123456-9',
|
||||||
|
@ -94,8 +95,9 @@ class ARLocalFlavorTests(SimpleTestCase):
|
||||||
'210123456-9': error_format,
|
'210123456-9': error_format,
|
||||||
'20-10123456': error_format,
|
'20-10123456': error_format,
|
||||||
'20-10123456-': error_format,
|
'20-10123456-': error_format,
|
||||||
'20-10123456-5': error_invalid,
|
'20-10123456-5': error_invalid,
|
||||||
'27-10345678-1': error_invalid,
|
'27-10345678-1': error_invalid,
|
||||||
'27-10345678-1': error_invalid,
|
'27-10345678-1': error_invalid,
|
||||||
|
'11211111110': error_legal_type,
|
||||||
}
|
}
|
||||||
self.assertFieldOutput(ARCUITField, valid, invalid)
|
self.assertFieldOutput(ARCUITField, valid, invalid)
|
||||||
|
|
Loading…
Reference in New Issue