App Engine Python SDK version 1.7.4 (2)
[gae.git] / python / lib / django_1_4 / tests / regressiontests / localflavor / es / tests.py
blobc989e3e9cac4fff3ccca8ceb3508cab49e7bf8f0
1 from django.contrib.localflavor.es.forms import (ESPostalCodeField, ESPhoneNumberField,
2 ESIdentityCardNumberField, ESCCCField, ESRegionSelect, ESProvinceSelect)
4 from django.test import SimpleTestCase
7 class ESLocalFlavorTests(SimpleTestCase):
8 def test_ESRegionSelect(self):
9 f = ESRegionSelect()
10 out = u'''<select name="regions">
11 <option value="AN">Andalusia</option>
12 <option value="AR">Aragon</option>
13 <option value="O">Principality of Asturias</option>
14 <option value="IB">Balearic Islands</option>
15 <option value="PV">Basque Country</option>
16 <option value="CN">Canary Islands</option>
17 <option value="S">Cantabria</option>
18 <option value="CM">Castile-La Mancha</option>
19 <option value="CL">Castile and Leon</option>
20 <option value="CT" selected="selected">Catalonia</option>
21 <option value="EX">Extremadura</option>
22 <option value="GA">Galicia</option>
23 <option value="LO">La Rioja</option>
24 <option value="M">Madrid</option>
25 <option value="MU">Region of Murcia</option>
26 <option value="NA">Foral Community of Navarre</option>
27 <option value="VC">Valencian Community</option>
28 </select>'''
29 self.assertHTMLEqual(f.render('regions', 'CT'), out)
31 def test_ESProvinceSelect(self):
32 f = ESProvinceSelect()
33 out = u'''<select name="provinces">
34 <option value="01">Arava</option>
35 <option value="02">Albacete</option>
36 <option value="03">Alacant</option>
37 <option value="04">Almeria</option>
38 <option value="05">Avila</option>
39 <option value="06">Badajoz</option>
40 <option value="07">Illes Balears</option>
41 <option value="08" selected="selected">Barcelona</option>
42 <option value="09">Burgos</option>
43 <option value="10">Caceres</option>
44 <option value="11">Cadiz</option>
45 <option value="12">Castello</option>
46 <option value="13">Ciudad Real</option>
47 <option value="14">Cordoba</option>
48 <option value="15">A Coruna</option>
49 <option value="16">Cuenca</option>
50 <option value="17">Girona</option>
51 <option value="18">Granada</option>
52 <option value="19">Guadalajara</option>
53 <option value="20">Guipuzkoa</option>
54 <option value="21">Huelva</option>
55 <option value="22">Huesca</option>
56 <option value="23">Jaen</option>
57 <option value="24">Leon</option>
58 <option value="25">Lleida</option>
59 <option value="26">La Rioja</option>
60 <option value="27">Lugo</option>
61 <option value="28">Madrid</option>
62 <option value="29">Malaga</option>
63 <option value="30">Murcia</option>
64 <option value="31">Navarre</option>
65 <option value="32">Ourense</option>
66 <option value="33">Asturias</option>
67 <option value="34">Palencia</option>
68 <option value="35">Las Palmas</option>
69 <option value="36">Pontevedra</option>
70 <option value="37">Salamanca</option>
71 <option value="38">Santa Cruz de Tenerife</option>
72 <option value="39">Cantabria</option>
73 <option value="40">Segovia</option>
74 <option value="41">Seville</option>
75 <option value="42">Soria</option>
76 <option value="43">Tarragona</option>
77 <option value="44">Teruel</option>
78 <option value="45">Toledo</option>
79 <option value="46">Valencia</option>
80 <option value="47">Valladolid</option>
81 <option value="48">Bizkaia</option>
82 <option value="49">Zamora</option>
83 <option value="50">Zaragoza</option>
84 <option value="51">Ceuta</option>
85 <option value="52">Melilla</option>
86 </select>'''
87 self.assertHTMLEqual(f.render('provinces', '08'), out)
89 def test_ESPostalCodeField(self):
90 error_invalid = [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
91 valid = {
92 '08028': '08028',
93 '28080': '28080',
95 invalid = {
96 '53001': error_invalid,
97 '0801': error_invalid,
98 '080001': error_invalid,
99 '00999': error_invalid,
100 '08 01': error_invalid,
101 '08A01': error_invalid,
103 self.assertFieldOutput(ESPostalCodeField, valid, invalid)
105 def test_ESPhoneNumberField(self):
106 error_invalid = [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
107 valid = {
108 '650010101': '650010101',
109 '931234567': '931234567',
110 '800123123': '800123123',
111 '789789789': '789789789',
113 invalid = {
114 '555555555': error_invalid,
115 '489489489': error_invalid,
116 '99123123': error_invalid,
117 '9999123123': error_invalid,
119 self.assertFieldOutput(ESPhoneNumberField, valid, invalid)
121 def test_ESIdentityCardNumberField(self):
122 error_invalid = [u'Please enter a valid NIF, NIE, or CIF.']
123 error_checksum_nif = [u'Invalid checksum for NIF.']
124 error_checksum_nie = [u'Invalid checksum for NIE.']
125 error_checksum_cif = [u'Invalid checksum for CIF.']
126 valid = {
127 '78699688J': '78699688J',
128 '78699688-J': '78699688J',
129 '78699688 J': '78699688J',
130 '78699688 j': '78699688J',
131 'X0901797J': 'X0901797J',
132 'X-6124387-Q': 'X6124387Q',
133 'X 0012953 G': 'X0012953G',
134 'x-3287690-r': 'X3287690R',
135 't-03287690r': 'T03287690R',
136 'P2907500I': 'P2907500I',
137 'B38790911': 'B38790911',
138 'B31234560': 'B31234560',
139 'B-3879091A': 'B3879091A',
140 'B 38790911': 'B38790911',
141 'P-3900800-H': 'P3900800H',
142 'P 39008008': 'P39008008',
143 'C-28795565': 'C28795565',
144 'C 2879556E': 'C2879556E',
146 invalid = {
147 '78699688T': error_checksum_nif,
148 'X-03287690': error_invalid,
149 'X-03287690-T': error_checksum_nie,
150 'B 38790917': error_checksum_cif,
151 'C28795567': error_checksum_cif,
152 'I38790911': error_invalid,
153 '78699688-2': error_invalid,
155 self.assertFieldOutput(ESIdentityCardNumberField, valid, invalid)
157 def test_ESCCCField(self):
158 error_invalid = [u'Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX.']
159 error_checksum = [u'Invalid checksum for bank account number.']
160 valid = {
161 '20770338793100254321': '20770338793100254321',
162 '2077 0338 79 3100254321': '2077 0338 79 3100254321',
163 '2077-0338-79-3100254321': '2077-0338-79-3100254321',
165 invalid = {
166 '2077.0338.79.3100254321': error_invalid,
167 '2077-0338-78-3100254321': error_checksum,
168 '2077-0338-89-3100254321': error_checksum,
169 '2077-03-3879-3100254321': error_invalid,
171 self.assertFieldOutput(ESCCCField, valid, invalid)