~ubuntu-branches/ubuntu/jaunty/python-django/jaunty-backports

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Scott James Remnant
  • Date: 2008-11-15 19:15:33 UTC
  • mfrom: (1.1.6 upstream)
  • Revision ID: james.westby@ubuntu.com-20081115191533-xbt1ut2xf4fvwtvc
Tags: 1.0.1-0ubuntu1
* New upstream release:
  - Bug fixes.

* The tests/ sub-directory appaers to have been dropped upstream, so pull
  our patch to workaround the tests and modify the rules.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# -*- coding: utf-8 -*-
2
 
# Tests for the contrib/localflavor/ US form fields.
3
 
 
4
 
tests = r"""
5
 
# USZipCodeField ##############################################################
6
 
 
7
 
USZipCodeField validates that the data is either a five-digit U.S. zip code or
8
 
a zip+4.
9
 
>>> from django.contrib.localflavor.us.forms import USZipCodeField
10
 
>>> f = USZipCodeField()
11
 
>>> f.clean('60606')
12
 
u'60606'
13
 
>>> f.clean(60606)
14
 
u'60606'
15
 
>>> f.clean('04000')
16
 
u'04000'
17
 
>>> f.clean('4000')
18
 
Traceback (most recent call last):
19
 
...
20
 
ValidationError: [u'Enter a zip code in the format XXXXX or XXXXX-XXXX.']
21
 
>>> f.clean('60606-1234')
22
 
u'60606-1234'
23
 
>>> f.clean('6060-1234')
24
 
Traceback (most recent call last):
25
 
...
26
 
ValidationError: [u'Enter a zip code in the format XXXXX or XXXXX-XXXX.']
27
 
>>> f.clean('60606-')
28
 
Traceback (most recent call last):
29
 
...
30
 
ValidationError: [u'Enter a zip code in the format XXXXX or XXXXX-XXXX.']
31
 
>>> f.clean(None)
32
 
Traceback (most recent call last):
33
 
...
34
 
ValidationError: [u'This field is required.']
35
 
>>> f.clean('')
36
 
Traceback (most recent call last):
37
 
...
38
 
ValidationError: [u'This field is required.']
39
 
 
40
 
>>> f = USZipCodeField(required=False)
41
 
>>> f.clean('60606')
42
 
u'60606'
43
 
>>> f.clean(60606)
44
 
u'60606'
45
 
>>> f.clean('04000')
46
 
u'04000'
47
 
>>> f.clean('4000')
48
 
Traceback (most recent call last):
49
 
...
50
 
ValidationError: [u'Enter a zip code in the format XXXXX or XXXXX-XXXX.']
51
 
>>> f.clean('60606-1234')
52
 
u'60606-1234'
53
 
>>> f.clean('6060-1234')
54
 
Traceback (most recent call last):
55
 
...
56
 
ValidationError: [u'Enter a zip code in the format XXXXX or XXXXX-XXXX.']
57
 
>>> f.clean('60606-')
58
 
Traceback (most recent call last):
59
 
...
60
 
ValidationError: [u'Enter a zip code in the format XXXXX or XXXXX-XXXX.']
61
 
>>> f.clean(None)
62
 
u''
63
 
>>> f.clean('')
64
 
u''
65
 
 
66
 
# USPhoneNumberField ##########################################################
67
 
 
68
 
USPhoneNumberField validates that the data is a valid U.S. phone number,
69
 
including the area code. It's normalized to XXX-XXX-XXXX format.
70
 
>>> from django.contrib.localflavor.us.forms import USPhoneNumberField
71
 
>>> f = USPhoneNumberField()
72
 
>>> f.clean('312-555-1212')
73
 
u'312-555-1212'
74
 
>>> f.clean('3125551212')
75
 
u'312-555-1212'
76
 
>>> f.clean('312 555-1212')
77
 
u'312-555-1212'
78
 
>>> f.clean('(312) 555-1212')
79
 
u'312-555-1212'
80
 
>>> f.clean('312 555 1212')
81
 
u'312-555-1212'
82
 
>>> f.clean('312.555.1212')
83
 
u'312-555-1212'
84
 
>>> f.clean('312.555-1212')
85
 
u'312-555-1212'
86
 
>>> f.clean(' (312) 555.1212 ')
87
 
u'312-555-1212'
88
 
>>> f.clean('555-1212')
89
 
Traceback (most recent call last):
90
 
...
91
 
ValidationError: [u'Phone numbers must be in XXX-XXX-XXXX format.']
92
 
>>> f.clean('312-55-1212')
93
 
Traceback (most recent call last):
94
 
...
95
 
ValidationError: [u'Phone numbers must be in XXX-XXX-XXXX format.']
96
 
>>> f.clean(None)
97
 
Traceback (most recent call last):
98
 
...
99
 
ValidationError: [u'This field is required.']
100
 
>>> f.clean('')
101
 
Traceback (most recent call last):
102
 
...
103
 
ValidationError: [u'This field is required.']
104
 
 
105
 
>>> f = USPhoneNumberField(required=False)
106
 
>>> f.clean('312-555-1212')
107
 
u'312-555-1212'
108
 
>>> f.clean('3125551212')
109
 
u'312-555-1212'
110
 
>>> f.clean('312 555-1212')
111
 
u'312-555-1212'
112
 
>>> f.clean('(312) 555-1212')
113
 
u'312-555-1212'
114
 
>>> f.clean('312 555 1212')
115
 
u'312-555-1212'
116
 
>>> f.clean('312.555.1212')
117
 
u'312-555-1212'
118
 
>>> f.clean('312.555-1212')
119
 
u'312-555-1212'
120
 
>>> f.clean(' (312) 555.1212 ')
121
 
u'312-555-1212'
122
 
>>> f.clean('555-1212')
123
 
Traceback (most recent call last):
124
 
...
125
 
ValidationError: [u'Phone numbers must be in XXX-XXX-XXXX format.']
126
 
>>> f.clean('312-55-1212')
127
 
Traceback (most recent call last):
128
 
...
129
 
ValidationError: [u'Phone numbers must be in XXX-XXX-XXXX format.']
130
 
>>> f.clean(None)
131
 
u''
132
 
>>> f.clean('')
133
 
u''
134
 
 
135
 
# USStateField ################################################################
136
 
 
137
 
USStateField validates that the data is either an abbreviation or name of a
138
 
U.S. state.
139
 
>>> from django.contrib.localflavor.us.forms import USStateField
140
 
>>> f = USStateField()
141
 
>>> f.clean('il')
142
 
u'IL'
143
 
>>> f.clean('IL')
144
 
u'IL'
145
 
>>> f.clean('illinois')
146
 
u'IL'
147
 
>>> f.clean('  illinois ')
148
 
u'IL'
149
 
>>> f.clean(60606)
150
 
Traceback (most recent call last):
151
 
...
152
 
ValidationError: [u'Enter a U.S. state or territory.']
153
 
>>> f.clean(None)
154
 
Traceback (most recent call last):
155
 
...
156
 
ValidationError: [u'This field is required.']
157
 
>>> f.clean('')
158
 
Traceback (most recent call last):
159
 
...
160
 
ValidationError: [u'This field is required.']
161
 
 
162
 
>>> f = USStateField(required=False)
163
 
>>> f.clean('il')
164
 
u'IL'
165
 
>>> f.clean('IL')
166
 
u'IL'
167
 
>>> f.clean('illinois')
168
 
u'IL'
169
 
>>> f.clean('  illinois ')
170
 
u'IL'
171
 
>>> f.clean(60606)
172
 
Traceback (most recent call last):
173
 
...
174
 
ValidationError: [u'Enter a U.S. state or territory.']
175
 
>>> f.clean(None)
176
 
u''
177
 
>>> f.clean('')
178
 
u''
179
 
 
180
 
# USStateSelect ###############################################################
181
 
 
182
 
USStateSelect is a Select widget that uses a list of U.S. states/territories
183
 
as its choices.
184
 
>>> from django.contrib.localflavor.us.forms import USStateSelect
185
 
>>> w = USStateSelect()
186
 
>>> print w.render('state', 'IL')
187
 
<select name="state">
188
 
<option value="AL">Alabama</option>
189
 
<option value="AK">Alaska</option>
190
 
<option value="AS">American Samoa</option>
191
 
<option value="AZ">Arizona</option>
192
 
<option value="AR">Arkansas</option>
193
 
<option value="CA">California</option>
194
 
<option value="CO">Colorado</option>
195
 
<option value="CT">Connecticut</option>
196
 
<option value="DE">Delaware</option>
197
 
<option value="DC">District of Columbia</option>
198
 
<option value="FL">Florida</option>
199
 
<option value="GA">Georgia</option>
200
 
<option value="GU">Guam</option>
201
 
<option value="HI">Hawaii</option>
202
 
<option value="ID">Idaho</option>
203
 
<option value="IL" selected="selected">Illinois</option>
204
 
<option value="IN">Indiana</option>
205
 
<option value="IA">Iowa</option>
206
 
<option value="KS">Kansas</option>
207
 
<option value="KY">Kentucky</option>
208
 
<option value="LA">Louisiana</option>
209
 
<option value="ME">Maine</option>
210
 
<option value="MD">Maryland</option>
211
 
<option value="MA">Massachusetts</option>
212
 
<option value="MI">Michigan</option>
213
 
<option value="MN">Minnesota</option>
214
 
<option value="MS">Mississippi</option>
215
 
<option value="MO">Missouri</option>
216
 
<option value="MT">Montana</option>
217
 
<option value="NE">Nebraska</option>
218
 
<option value="NV">Nevada</option>
219
 
<option value="NH">New Hampshire</option>
220
 
<option value="NJ">New Jersey</option>
221
 
<option value="NM">New Mexico</option>
222
 
<option value="NY">New York</option>
223
 
<option value="NC">North Carolina</option>
224
 
<option value="ND">North Dakota</option>
225
 
<option value="MP">Northern Mariana Islands</option>
226
 
<option value="OH">Ohio</option>
227
 
<option value="OK">Oklahoma</option>
228
 
<option value="OR">Oregon</option>
229
 
<option value="PA">Pennsylvania</option>
230
 
<option value="PR">Puerto Rico</option>
231
 
<option value="RI">Rhode Island</option>
232
 
<option value="SC">South Carolina</option>
233
 
<option value="SD">South Dakota</option>
234
 
<option value="TN">Tennessee</option>
235
 
<option value="TX">Texas</option>
236
 
<option value="UT">Utah</option>
237
 
<option value="VT">Vermont</option>
238
 
<option value="VI">Virgin Islands</option>
239
 
<option value="VA">Virginia</option>
240
 
<option value="WA">Washington</option>
241
 
<option value="WV">West Virginia</option>
242
 
<option value="WI">Wisconsin</option>
243
 
<option value="WY">Wyoming</option>
244
 
</select>
245
 
 
246
 
# USSocialSecurityNumberField #################################################
247
 
>>> from django.contrib.localflavor.us.forms import USSocialSecurityNumberField
248
 
>>> f = USSocialSecurityNumberField()
249
 
>>> f.clean('987-65-4330')
250
 
u'987-65-4330'
251
 
>>> f.clean('987654330')
252
 
u'987-65-4330'
253
 
>>> f.clean('078-05-1120')
254
 
Traceback (most recent call last):
255
 
...
256
 
ValidationError: [u'Enter a valid U.S. Social Security number in XXX-XX-XXXX format.']
257
 
"""