summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/forms/localflavor/mx.py127
-rw-r--r--tests/regressiontests/forms/localflavortests.py1
-rw-r--r--tests/regressiontests/forms/tests/__init__.py1
-rw-r--r--tests/regressiontests/localflavor/mk/models.py2
-rw-r--r--tests/regressiontests/localflavor/mx/__init__.py0
-rw-r--r--tests/regressiontests/localflavor/mx/forms.py7
-rw-r--r--tests/regressiontests/localflavor/mx/models.py12
-rw-r--r--tests/regressiontests/localflavor/mx/tests.py71
-rw-r--r--tests/regressiontests/localflavor/tests.py1
-rw-r--r--tests/regressiontests/localflavor/us/forms.py2
-rw-r--r--tests/regressiontests/localflavor/us/models.py1
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'