diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/regressiontests/forms/localflavor/mx.py | 127 | ||||
| -rw-r--r-- | tests/regressiontests/forms/localflavortests.py | 1 | ||||
| -rw-r--r-- | tests/regressiontests/forms/tests/__init__.py | 1 | ||||
| -rw-r--r-- | tests/regressiontests/localflavor/mk/models.py | 2 | ||||
| -rw-r--r-- | tests/regressiontests/localflavor/mx/__init__.py | 0 | ||||
| -rw-r--r-- | tests/regressiontests/localflavor/mx/forms.py | 7 | ||||
| -rw-r--r-- | tests/regressiontests/localflavor/mx/models.py | 12 | ||||
| -rw-r--r-- | tests/regressiontests/localflavor/mx/tests.py | 71 | ||||
| -rw-r--r-- | tests/regressiontests/localflavor/tests.py | 1 | ||||
| -rw-r--r-- | tests/regressiontests/localflavor/us/forms.py | 2 | ||||
| -rw-r--r-- | tests/regressiontests/localflavor/us/models.py | 1 |
11 files changed, 223 insertions, 2 deletions
diff --git a/tests/regressiontests/forms/localflavor/mx.py b/tests/regressiontests/forms/localflavor/mx.py new file mode 100644 index 0000000000..1ffc11c834 --- /dev/null +++ b/tests/regressiontests/forms/localflavor/mx.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +from django.contrib.localflavor.mx.forms import (MXZipCodeField, MXRFCField, + MXStateSelect, MXCURPField) + +from utils import LocalFlavorTestCase + + +class MXLocalFlavorTests(LocalFlavorTestCase): + def test_MXStateSelect(self): + f = MXStateSelect() + out = u'''<select name="state"> +<option value="AGU">Aguascalientes</option> +<option value="BCN">Baja California</option> +<option value="BCS">Baja California Sur</option> +<option value="CAM">Campeche</option> +<option value="CHH">Chihuahua</option> +<option value="CHP">Chiapas</option> +<option value="COA">Coahuila</option> +<option value="COL">Colima</option> +<option value="DIF">Distrito Federal</option> +<option value="DUR">Durango</option> +<option value="GRO">Guerrero</option> +<option value="GUA">Guanajuato</option> +<option value="HID">Hidalgo</option> +<option value="JAL">Jalisco</option> +<option value="MEX">Estado de México</option> +<option value="MIC" selected="selected">Michoacán</option> +<option value="MOR">Morelos</option> +<option value="NAY">Nayarit</option> +<option value="NLE">Nuevo León</option> +<option value="OAX">Oaxaca</option> +<option value="PUE">Puebla</option> +<option value="QUE">Querétaro</option> +<option value="ROO">Quintana Roo</option> +<option value="SIN">Sinaloa</option> +<option value="SLP">San Luis Potosí</option> +<option value="SON">Sonora</option> +<option value="TAB">Tabasco</option> +<option value="TAM">Tamaulipas</option> +<option value="TLA">Tlaxcala</option> +<option value="VER">Veracruz</option> +<option value="YUC">Yucatán</option> +<option value="ZAC">Zacatecas</option> +</select>''' + self.assertEqual(f.render('state', 'MIC'), out) + + def test_MXZipCodeField(self): + error_format = [u'Enter a valid zip code in the format XXXXX.'] + valid = { + '58120': u'58120', + '58502': u'58502', + '59310': u'59310', + '99999': u'99999', + } + invalid = { + '17000': error_format, + '18000': error_format, + '19000': error_format, + '00000': error_format, + } + self.assertFieldOutput(MXZipCodeField, valid, invalid) + + def test_MXRFCField(self): + error_format = [u'Enter a valid RFC.'] + error_checksum = [u'Invalid checksum for RFC.'] + valid = { + 'MoFN641205eX5': u'MOFN641205EX5', + 'ICa060120873': u'ICA060120873', + 'eUcG751104rT0': u'EUCG751104RT0', + 'GME08100195A': u'GME08100195A', + 'AA&060524KX5': u'AA&060524KX5', + 'CAÑ0708045P7': u'CAÑ0708045P7', + 'aaa000101aa9': u'AAA000101AA9', + } + invalid = { + 'MED0000000XA': error_format, + '0000000000XA': error_format, + 'AAA000000AA6': error_format, + # Dates + 'XXX880002XXX': error_format, + 'XXX880200XXX': error_format, + 'XXX880132XXX': error_format, + 'XXX880230XXX': error_format, + 'XXX880431XXX': error_format, + # Incorrect checksum + 'MOGR650524E73': error_checksum, + 'HVA7810058F1': error_checksum, + 'MoFN641205eX2': error_checksum, + 'ICa060120871': error_checksum, + 'eUcG751104rT7': error_checksum, + 'GME081001955': error_checksum, + 'AA&060524KX9': error_checksum, + 'CAÑ0708045P2': error_checksum, + } + self.assertFieldOutput(MXRFCField, valid, invalid) + + def test_MXCURPField(self): + error_format = [u'Enter a valid CURP.'] + error_checksum = [u'Invalid checksum for CURP.'] + valid = { + 'AaMG890608HDFLJL00': u'AAMG890608HDFLJL00', + 'BAAd890419HMNRRV07': u'BAAD890419HMNRRV07', + 'VIAA900930MMNClL08': u'VIAA900930MMNCLL08', + 'HEGR891009HMNRRD09': u'HEGR891009HMNRRD09', + 'MARR890512HMNRMN09': u'MARR890512HMNRMN09', + 'MESJ890928HMNZNS00': u'MESJ890928HMNZNS00', + 'BAAA890317HDFRLL03': u'BAAA890317HDFRLL03', + 'TOMA880125HMNRRNO2': u'TOMA880125HMNRRNO2', + 'OOMG890727HMNRSR06': u'OOMG890727HMNRSR06', + 'AAAA000101HDFCCC09': u'AAAA000101HDFCCC09', + } + invalid = { + 'AAAA000000HDFCCC09': error_format, + 'AAAA000000HDFAAA03': error_format, + 'AAAA000000HXXCCC08': error_format, + 'AAAA000000XMNCCC02': error_format, + 'HEGR891009HMNRRD0A': error_format, + 'MARR890512HMNRMN0A': error_format, + 'AaMG890608HDFLJL01': error_checksum, + 'BAAd890419HMNRRV08': error_checksum, + 'VIAA900930MMNClL09': error_checksum, + 'MESJ890928HMNZNS01': error_checksum, + 'BAAA890317HDFRLL04': error_checksum, + 'TOMA880125HMNRRNO3': error_checksum, + 'OOMG890727HMNRSR07': error_checksum, + } + self.assertFieldOutput(MXCURPField, valid, invalid) diff --git a/tests/regressiontests/forms/localflavortests.py b/tests/regressiontests/forms/localflavortests.py index eb289b5a68..a4db3dba98 100644 --- a/tests/regressiontests/forms/localflavortests.py +++ b/tests/regressiontests/forms/localflavortests.py @@ -27,6 +27,7 @@ from localflavor.it import ITLocalFlavorTests from localflavor.jp import JPLocalFlavorTests from localflavor.kw import KWLocalFlavorTests from localflavor.mk import MKLocalFlavorTests +from localflavor.mx import MXLocalFlavorTests from localflavor.nl import NLLocalFlavorTests from localflavor.pl import PLLocalFlavorTests from localflavor.pt import PTLocalFlavorTests diff --git a/tests/regressiontests/forms/tests/__init__.py b/tests/regressiontests/forms/tests/__init__.py index c45b25b374..f63818d578 100644 --- a/tests/regressiontests/forms/tests/__init__.py +++ b/tests/regressiontests/forms/tests/__init__.py @@ -40,6 +40,7 @@ from regressiontests.forms.localflavortests import ( JPLocalFlavorTests, KWLocalFlavorTests, MKLocalFlavorTests, + MXLocalFlavorTests, NLLocalFlavorTests, PLLocalFlavorTests, PTLocalFlavorTests, diff --git a/tests/regressiontests/localflavor/mk/models.py b/tests/regressiontests/localflavor/mk/models.py index b79239a9bf..244f396b52 100644 --- a/tests/regressiontests/localflavor/mk/models.py +++ b/tests/regressiontests/localflavor/mk/models.py @@ -8,7 +8,7 @@ class MKPerson(models.Model): umcn = UMCNField() id_number = MKIdentityCardNumberField() municipality = MKMunicipalityField(blank = True) - municipality_req = MKMunicipalityField(blank = False) + municipality_req = MKMunicipalityField(blank = False) class Meta: app_label = 'localflavor' diff --git a/tests/regressiontests/localflavor/mx/__init__.py b/tests/regressiontests/localflavor/mx/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/regressiontests/localflavor/mx/__init__.py diff --git a/tests/regressiontests/localflavor/mx/forms.py b/tests/regressiontests/localflavor/mx/forms.py new file mode 100644 index 0000000000..2669cd9ace --- /dev/null +++ b/tests/regressiontests/localflavor/mx/forms.py @@ -0,0 +1,7 @@ +from django.forms import ModelForm +from models import MXPersonProfile + +class MXPersonProfileForm(ModelForm): + + class Meta: + model = MXPersonProfile diff --git a/tests/regressiontests/localflavor/mx/models.py b/tests/regressiontests/localflavor/mx/models.py new file mode 100644 index 0000000000..9c32cf5cab --- /dev/null +++ b/tests/regressiontests/localflavor/mx/models.py @@ -0,0 +1,12 @@ +from django.db import models +from django.contrib.localflavor.mx.models import ( + MXStateField, MXRFCField, MXCURPField, MXZipCodeField) + +class MXPersonProfile(models.Model): + state = MXStateField() + rfc = MXRFCField() + curp = MXCURPField() + zip_code = MXZipCodeField() + + class Meta: + app_label = 'localflavor' diff --git a/tests/regressiontests/localflavor/mx/tests.py b/tests/regressiontests/localflavor/mx/tests.py new file mode 100644 index 0000000000..40da38a97c --- /dev/null +++ b/tests/regressiontests/localflavor/mx/tests.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +from django.test import TestCase +from forms import MXPersonProfileForm + +class MXLocalFlavorTests(TestCase): + def setUp(self): + self.form = MXPersonProfileForm({ + 'state': 'MIC', + 'rfc': 'toma880125kv3', + 'curp': 'toma880125hmnrrn02', + 'zip_code': '58120', + }) + + def test_get_display_methods(self): + """Test that the get_*_display() methods are added to the model instances.""" + place = self.form.save() + self.assertEqual(place.get_state_display(), u'Michoacán') + + def test_errors(self): + """Test that required MXFields throw appropriate errors.""" + form = MXPersonProfileForm({ + 'state': 'Invalid state', + 'rfc': 'invalid rfc', + 'curp': 'invalid curp', + 'zip_code': 'xxx', + }) + self.assertFalse(form.is_valid()) + self.assertEqual(form.errors['state'], [u'Select a valid choice. Invalid state is not one of the available choices.']) + self.assertEqual(form.errors['rfc'], [u'Enter a valid RFC.']) + self.assertEqual(form.errors['curp'], [u'Ensure this value has at least 18 characters (it has 12).', u'Enter a valid CURP.']) + self.assertEqual(form.errors['zip_code'], [u'Enter a valid zip code in the format XXXXX.']) + + def test_field_blank_option(self): + """Test that the empty option is there.""" + state_select_html = """\ +<select name="state" id="id_state"> +<option value="">---------</option> +<option value="AGU">Aguascalientes</option> +<option value="BCN">Baja California</option> +<option value="BCS">Baja California Sur</option> +<option value="CAM">Campeche</option> +<option value="CHH">Chihuahua</option> +<option value="CHP">Chiapas</option> +<option value="COA">Coahuila</option> +<option value="COL">Colima</option> +<option value="DIF">Distrito Federal</option> +<option value="DUR">Durango</option> +<option value="GRO">Guerrero</option> +<option value="GUA">Guanajuato</option> +<option value="HID">Hidalgo</option> +<option value="JAL">Jalisco</option> +<option value="MEX">Estado de México</option> +<option value="MIC" selected="selected">Michoacán</option> +<option value="MOR">Morelos</option> +<option value="NAY">Nayarit</option> +<option value="NLE">Nuevo León</option> +<option value="OAX">Oaxaca</option> +<option value="PUE">Puebla</option> +<option value="QUE">Querétaro</option> +<option value="ROO">Quintana Roo</option> +<option value="SIN">Sinaloa</option> +<option value="SLP">San Luis Potosí</option> +<option value="SON">Sonora</option> +<option value="TAB">Tabasco</option> +<option value="TAM">Tamaulipas</option> +<option value="TLA">Tlaxcala</option> +<option value="VER">Veracruz</option> +<option value="YUC">Yucatán</option> +<option value="ZAC">Zacatecas</option> +</select>""" + self.assertEqual(str(self.form['state']), state_select_html) diff --git a/tests/regressiontests/localflavor/tests.py b/tests/regressiontests/localflavor/tests.py index 6a15d463f7..95a5f99128 100644 --- a/tests/regressiontests/localflavor/tests.py +++ b/tests/regressiontests/localflavor/tests.py @@ -1,4 +1,5 @@ from au.tests import * from mk.tests import * +from mx.tests import * from us.tests import * diff --git a/tests/regressiontests/localflavor/us/forms.py b/tests/regressiontests/localflavor/us/forms.py index 9b77e1078b..7730662f8c 100644 --- a/tests/regressiontests/localflavor/us/forms.py +++ b/tests/regressiontests/localflavor/us/forms.py @@ -2,6 +2,6 @@ from django.forms import ModelForm from models import USPlace class USPlaceForm(ModelForm): - """docstring for PlaceForm""" + class Meta: model = USPlace diff --git a/tests/regressiontests/localflavor/us/models.py b/tests/regressiontests/localflavor/us/models.py index 7ac3826b2f..4095f73532 100644 --- a/tests/regressiontests/localflavor/us/models.py +++ b/tests/regressiontests/localflavor/us/models.py @@ -11,5 +11,6 @@ class USPlace(models.Model): state_default = USStateField(default="CA", blank=True) postal_code = USPostalCodeField(blank=True) name = models.CharField(max_length=20) + class Meta: app_label = 'localflavor' |
