~ubuntu-branches/ubuntu/saucy/python-django/saucy-updates

« back to all changes in this revision

Viewing changes to tests/regressiontests/forms/localflavor/es.py

  • Committer: Bazaar Package Importer
  • Author(s): Scott James Remnant
  • Date: 2008-11-15 19:15:33 UTC
  • mto: This revision was merged to the branch mainline in revision 17.
  • Revision ID: james.westby@ubuntu.com-20081115191533-84v2zyjbmp1074ni
Tags: upstream-1.0.1
ImportĀ upstreamĀ versionĀ 1.0.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# -*- coding: utf-8 -*-
2
 
# Tests for the contrib/localflavor/ ES form fields.
3
 
 
4
 
tests = r"""
5
 
# ESPostalCodeField ##############################################################
6
 
 
7
 
ESPostalCodeField validates that data is a five-digit spanish postal code.
8
 
>>> from django.contrib.localflavor.es.forms import ESPostalCodeField
9
 
>>> f = ESPostalCodeField()
10
 
>>> f.clean('08028')
11
 
u'08028'
12
 
>>> f.clean('28080')
13
 
u'28080'
14
 
>>> f.clean('53001')
15
 
Traceback (most recent call last):
16
 
...
17
 
ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
18
 
>>> f.clean('0801')
19
 
Traceback (most recent call last):
20
 
...
21
 
ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
22
 
>>> f.clean('080001')
23
 
Traceback (most recent call last):
24
 
...
25
 
ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
26
 
>>> f.clean('00999')
27
 
Traceback (most recent call last):
28
 
...
29
 
ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
30
 
>>> f.clean('08 01')
31
 
Traceback (most recent call last):
32
 
...
33
 
ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
34
 
>>> f.clean('08A01')
35
 
Traceback (most recent call last):
36
 
...
37
 
ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
38
 
>>> f.clean('')
39
 
Traceback (most recent call last):
40
 
...
41
 
ValidationError: [u'This field is required.']
42
 
 
43
 
>>> f = ESPostalCodeField(required=False)
44
 
>>> f.clean('08028')
45
 
u'08028'
46
 
>>> f.clean('28080')
47
 
u'28080'
48
 
>>> f.clean('53001')
49
 
Traceback (most recent call last):
50
 
...
51
 
ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
52
 
>>> f.clean('0801')
53
 
Traceback (most recent call last):
54
 
...
55
 
ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
56
 
>>> f.clean('080001')
57
 
Traceback (most recent call last):
58
 
...
59
 
ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
60
 
>>> f.clean('00999')
61
 
Traceback (most recent call last):
62
 
...
63
 
ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
64
 
>>> f.clean('08 01')
65
 
Traceback (most recent call last):
66
 
...
67
 
ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
68
 
>>> f.clean('08A01')
69
 
Traceback (most recent call last):
70
 
...
71
 
ValidationError: [u'Enter a valid postal code in the range and format 01XXX - 52XXX.']
72
 
>>> f.clean('')
73
 
u''
74
 
 
75
 
# ESPhoneNumberField ##############################################################
76
 
 
77
 
ESPhoneNumberField validates that data is a nine-digit spanish phone number.
78
 
>>> from django.contrib.localflavor.es.forms import ESPhoneNumberField
79
 
>>> f = ESPhoneNumberField()
80
 
>>> f.clean('650010101')
81
 
u'650010101'
82
 
>>> f.clean('931234567')
83
 
u'931234567'
84
 
>>> f.clean('800123123')
85
 
u'800123123'
86
 
>>> f.clean('555555555')
87
 
Traceback (most recent call last):
88
 
...
89
 
ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
90
 
>>> f.clean('789789789')
91
 
Traceback (most recent call last):
92
 
...
93
 
ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
94
 
>>> f.clean('99123123')
95
 
Traceback (most recent call last):
96
 
...
97
 
ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
98
 
>>> f.clean('9999123123')
99
 
Traceback (most recent call last):
100
 
...
101
 
ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
102
 
>>> f.clean('')
103
 
Traceback (most recent call last):
104
 
...
105
 
ValidationError: [u'This field is required.']
106
 
 
107
 
>>> f = ESPhoneNumberField(required=False)
108
 
>>> f.clean('650010101')
109
 
u'650010101'
110
 
>>> f.clean('931234567')
111
 
u'931234567'
112
 
>>> f.clean('800123123')
113
 
u'800123123'
114
 
>>> f.clean('555555555')
115
 
Traceback (most recent call last):
116
 
...
117
 
ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
118
 
>>> f.clean('789789789')
119
 
Traceback (most recent call last):
120
 
...
121
 
ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
122
 
>>> f.clean('99123123')
123
 
Traceback (most recent call last):
124
 
...
125
 
ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
126
 
>>> f.clean('9999123123')
127
 
Traceback (most recent call last):
128
 
...
129
 
ValidationError: [u'Enter a valid phone number in one of the formats 6XXXXXXXX, 8XXXXXXXX or 9XXXXXXXX.']
130
 
>>> f.clean('')
131
 
u''
132
 
 
133
 
# ESIdentityCardNumberField ##############################################################
134
 
 
135
 
ESIdentityCardNumberField validates that data is a identification spanish code for companies or individuals (CIF, NIF or NIE).
136
 
>>> from django.contrib.localflavor.es.forms import ESIdentityCardNumberField
137
 
>>> f = ESIdentityCardNumberField()
138
 
>>> f.clean('78699688J')
139
 
'78699688J'
140
 
>>> f.clean('78699688-J')
141
 
'78699688J'
142
 
>>> f.clean('78699688 J')
143
 
'78699688J'
144
 
>>> f.clean('78699688 j')
145
 
'78699688J'
146
 
>>> f.clean('78699688T')
147
 
Traceback (most recent call last):
148
 
...
149
 
ValidationError: [u'Invalid checksum for NIF.']
150
 
>>> f.clean('X0901797J')
151
 
'X0901797J'
152
 
>>> f.clean('X-6124387-Q')
153
 
'X6124387Q'
154
 
>>> f.clean('X 0012953 G')
155
 
'X0012953G'
156
 
>>> f.clean('x-3287690-r')
157
 
'X3287690R'
158
 
>>> f.clean('t-03287690r')
159
 
'T03287690R'
160
 
>>> f.clean('X-03287690')
161
 
Traceback (most recent call last):
162
 
...
163
 
ValidationError: [u'Please enter a valid NIF, NIE, or CIF.']
164
 
>>> f.clean('X-03287690-T')
165
 
Traceback (most recent call last):
166
 
...
167
 
ValidationError: [u'Invalid checksum for NIE.']
168
 
>>> f.clean('B38790911')
169
 
'B38790911'
170
 
>>> f.clean('B31234560')
171
 
'B31234560'
172
 
>>> f.clean('B-3879091A')
173
 
'B3879091A'
174
 
>>> f.clean('B 38790917')
175
 
Traceback (most recent call last):
176
 
...
177
 
ValidationError: [u'Invalid checksum for CIF.']
178
 
>>> f.clean('B 38790911')
179
 
'B38790911'
180
 
>>> f.clean('P-3900800-H')
181
 
'P3900800H'
182
 
>>> f.clean('P 39008008')
183
 
'P39008008'
184
 
>>> f.clean('C-28795565')
185
 
'C28795565'
186
 
>>> f.clean('C 2879556E')
187
 
'C2879556E'
188
 
>>> f.clean('C28795567')
189
 
Traceback (most recent call last):
190
 
...
191
 
ValidationError: [u'Invalid checksum for CIF.']
192
 
>>> f.clean('I38790911')
193
 
Traceback (most recent call last):
194
 
...
195
 
ValidationError: [u'Please enter a valid NIF, NIE, or CIF.']
196
 
>>> f.clean('78699688-2')
197
 
Traceback (most recent call last):
198
 
...
199
 
ValidationError: [u'Please enter a valid NIF, NIE, or CIF.']
200
 
>>> f.clean('')
201
 
Traceback (most recent call last):
202
 
...
203
 
ValidationError: [u'This field is required.']
204
 
 
205
 
>>> f = ESIdentityCardNumberField(required=False)
206
 
>>> f.clean('78699688J')
207
 
'78699688J'
208
 
>>> f.clean('78699688-J')
209
 
'78699688J'
210
 
>>> f.clean('78699688 J')
211
 
'78699688J'
212
 
>>> f.clean('78699688 j')
213
 
'78699688J'
214
 
>>> f.clean('78699688T')
215
 
Traceback (most recent call last):
216
 
...
217
 
ValidationError: [u'Invalid checksum for NIF.']
218
 
>>> f.clean('X0901797J')
219
 
'X0901797J'
220
 
>>> f.clean('X-6124387-Q')
221
 
'X6124387Q'
222
 
>>> f.clean('X 0012953 G')
223
 
'X0012953G'
224
 
>>> f.clean('x-3287690-r')
225
 
'X3287690R'
226
 
>>> f.clean('t-03287690r')
227
 
'T03287690R'
228
 
>>> f.clean('X-03287690')
229
 
Traceback (most recent call last):
230
 
...
231
 
ValidationError: [u'Please enter a valid NIF, NIE, or CIF.']
232
 
>>> f.clean('X-03287690-T')
233
 
Traceback (most recent call last):
234
 
...
235
 
ValidationError: [u'Invalid checksum for NIE.']
236
 
>>> f.clean('B38790911')
237
 
'B38790911'
238
 
>>> f.clean('B-3879091A')
239
 
'B3879091A'
240
 
>>> f.clean('B 38790917')
241
 
Traceback (most recent call last):
242
 
...
243
 
ValidationError: [u'Invalid checksum for CIF.']
244
 
>>> f.clean('B 38790911')
245
 
'B38790911'
246
 
>>> f.clean('P-3900800-H')
247
 
'P3900800H'
248
 
>>> f.clean('P 39008008')
249
 
'P39008008'
250
 
>>> f.clean('C-28795565')
251
 
'C28795565'
252
 
>>> f.clean('C 2879556E')
253
 
'C2879556E'
254
 
>>> f.clean('C28795567')
255
 
Traceback (most recent call last):
256
 
...
257
 
ValidationError: [u'Invalid checksum for CIF.']
258
 
>>> f.clean('I38790911')
259
 
Traceback (most recent call last):
260
 
...
261
 
ValidationError: [u'Please enter a valid NIF, NIE, or CIF.']
262
 
>>> f.clean('78699688-2')
263
 
Traceback (most recent call last):
264
 
...
265
 
ValidationError: [u'Please enter a valid NIF, NIE, or CIF.']
266
 
>>> f.clean('')
267
 
u''
268
 
 
269
 
# ESCCCField ##############################################################
270
 
 
271
 
ESCCCField validates that data is a spanish bank account number (codigo cuenta cliente).
272
 
 
273
 
>>> from django.contrib.localflavor.es.forms import ESCCCField
274
 
>>> f = ESCCCField()
275
 
>>> f.clean('20770338793100254321')
276
 
'20770338793100254321'
277
 
>>> f.clean('2077 0338 79 3100254321')
278
 
'2077 0338 79 3100254321'
279
 
>>> f.clean('2077-0338-79-3100254321')
280
 
'2077-0338-79-3100254321'
281
 
>>> f.clean('2077.0338.79.3100254321')
282
 
Traceback (most recent call last):
283
 
...
284
 
ValidationError: [u'Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX.']
285
 
>>> f.clean('2077-0338-78-3100254321')
286
 
Traceback (most recent call last):
287
 
...
288
 
ValidationError: [u'Invalid checksum for bank account number.']
289
 
>>> f.clean('2077-0338-89-3100254321')
290
 
Traceback (most recent call last):
291
 
...
292
 
ValidationError: [u'Invalid checksum for bank account number.']
293
 
>>> f.clean('2077-03-3879-3100254321')
294
 
Traceback (most recent call last):
295
 
...
296
 
ValidationError: [u'Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX.']
297
 
>>> f.clean('')
298
 
Traceback (most recent call last):
299
 
...
300
 
ValidationError: [u'This field is required.']
301
 
 
302
 
>>> f = ESCCCField(required=False)
303
 
>>> f.clean('20770338793100254321')
304
 
'20770338793100254321'
305
 
>>> f.clean('2077 0338 79 3100254321')
306
 
'2077 0338 79 3100254321'
307
 
>>> f.clean('2077-0338-79-3100254321')
308
 
'2077-0338-79-3100254321'
309
 
>>> f.clean('2077.0338.79.3100254321')
310
 
Traceback (most recent call last):
311
 
...
312
 
ValidationError: [u'Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX.']
313
 
>>> f.clean('2077-0338-78-3100254321')
314
 
Traceback (most recent call last):
315
 
...
316
 
ValidationError: [u'Invalid checksum for bank account number.']
317
 
>>> f.clean('2077-0338-89-3100254321')
318
 
Traceback (most recent call last):
319
 
...
320
 
ValidationError: [u'Invalid checksum for bank account number.']
321
 
>>> f.clean('2077-03-3879-3100254321')
322
 
Traceback (most recent call last):
323
 
...
324
 
ValidationError: [u'Please enter a valid bank account number in format XXXX-XXXX-XX-XXXXXXXXXX.']
325
 
>>> f.clean('')
326
 
u''
327
 
 
328
 
# ESRegionSelect ##############################################################
329
 
 
330
 
ESRegionSelect is a Select widget that uses a list of Spain regions as its choices.
331
 
>>> from django.contrib.localflavor.es.forms import ESRegionSelect
332
 
>>> w = ESRegionSelect()
333
 
>>> w.render('regions', 'CT')
334
 
u'<select name="regions">\n<option value="AN">Andalusia</option>\n<option value="AR">Aragon</option>\n<option value="O">Principality of Asturias</option>\n<option value="IB">Balearic Islands</option>\n<option value="PV">Basque Country</option>\n<option value="CN">Canary Islands</option>\n<option value="S">Cantabria</option>\n<option value="CM">Castile-La Mancha</option>\n<option value="CL">Castile and Leon</option>\n<option value="CT" selected="selected">Catalonia</option>\n<option value="EX">Extremadura</option>\n<option value="GA">Galicia</option>\n<option value="LO">La Rioja</option>\n<option value="M">Madrid</option>\n<option value="MU">Region of Murcia</option>\n<option value="NA">Foral Community of Navarre</option>\n<option value="VC">Valencian Community</option>\n</select>'
335
 
 
336
 
# ESProvincenSelect ##############################################################
337
 
 
338
 
ESProvinceSelect is a Select widget that uses a list of Spain provinces as its choices.
339
 
>>> from django.contrib.localflavor.es.forms import ESProvinceSelect
340
 
>>> w = ESProvinceSelect()
341
 
>>> w.render('provinces', '08')
342
 
u'<select name="provinces">\n<option value="01">Arava</option>\n<option value="02">Albacete</option>\n<option value="03">Alacant</option>\n<option value="04">Almeria</option>\n<option value="05">Avila</option>\n<option value="06">Badajoz</option>\n<option value="07">Illes Balears</option>\n<option value="08" selected="selected">Barcelona</option>\n<option value="09">Burgos</option>\n<option value="10">Caceres</option>\n<option value="11">Cadiz</option>\n<option value="12">Castello</option>\n<option value="13">Ciudad Real</option>\n<option value="14">Cordoba</option>\n<option value="15">A Coruna</option>\n<option value="16">Cuenca</option>\n<option value="17">Girona</option>\n<option value="18">Granada</option>\n<option value="19">Guadalajara</option>\n<option value="20">Guipuzkoa</option>\n<option value="21">Huelva</option>\n<option value="22">Huesca</option>\n<option value="23">Jaen</option>\n<option value="24">Leon</option>\n<option value="25">Lleida</option>\n<option value="26">La Rioja</option>\n<option value="27">Lugo</option>\n<option value="28">Madrid</option>\n<option value="29">Malaga</option>\n<option value="30">Murcia</option>\n<option value="31">Navarre</option>\n<option value="32">Ourense</option>\n<option value="33">Asturias</option>\n<option value="34">Palencia</option>\n<option value="35">Las Palmas</option>\n<option value="36">Pontevedra</option>\n<option value="37">Salamanca</option>\n<option value="38">Santa Cruz de Tenerife</option>\n<option value="39">Cantabria</option>\n<option value="40">Segovia</option>\n<option value="41">Seville</option>\n<option value="42">Soria</option>\n<option value="43">Tarragona</option>\n<option value="44">Teruel</option>\n<option value="45">Toledo</option>\n<option value="46">Valencia</option>\n<option value="47">Valladolid</option>\n<option value="48">Bizkaia</option>\n<option value="49">Zamora</option>\n<option value="50">Zaragoza</option>\n<option value="51">Ceuta</option>\n<option value="52">Melilla</option>\n</select>'
343
 
 
344
 
"""
345