Fixed #15623 -- Corrected province codes for Canadian localflavor. Thanks to shelldweller for the report.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@15864 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2011-03-17 00:59:30 +00:00
parent c2ae6b2af7
commit 1af33427cb
3 changed files with 35 additions and 9 deletions

View File

@ -8,13 +8,18 @@ Source: http://www.canada.gc.ca/othergov/prov_e.html
This exists in this standalone file so that it's only imported into memory This exists in this standalone file so that it's only imported into memory
when explicitly needed. when explicitly needed.
""" """
import warnings
warnings.warn(
'There have been recent changes to the CA localflavor. See the release notes for details',
RuntimeWarning
)
PROVINCE_CHOICES = ( PROVINCE_CHOICES = (
('AB', 'Alberta'), ('AB', 'Alberta'),
('BC', 'British Columbia'), ('BC', 'British Columbia'),
('MB', 'Manitoba'), ('MB', 'Manitoba'),
('NB', 'New Brunswick'), ('NB', 'New Brunswick'),
('NF', 'Newfoundland and Labrador'), ('NL', 'Newfoundland and Labrador'),
('NT', 'Northwest Territories'), ('NT', 'Northwest Territories'),
('NS', 'Nova Scotia'), ('NS', 'Nova Scotia'),
('NU', 'Nunavut'), ('NU', 'Nunavut'),
@ -22,7 +27,7 @@ PROVINCE_CHOICES = (
('PE', 'Prince Edward Island'), ('PE', 'Prince Edward Island'),
('QC', 'Quebec'), ('QC', 'Quebec'),
('SK', 'Saskatchewan'), ('SK', 'Saskatchewan'),
('YK', 'Yukon') ('YT', 'Yukon')
) )
PROVINCES_NORMALIZED = { PROVINCES_NORMALIZED = {
@ -35,9 +40,10 @@ PROVINCES_NORMALIZED = {
'manitoba': 'MB', 'manitoba': 'MB',
'nb': 'NB', 'nb': 'NB',
'new brunswick': 'NB', 'new brunswick': 'NB',
'nf': 'NF', 'nf': 'NL',
'newfoundland': 'NF', 'nl': 'NL',
'newfoundland and labrador': 'NF', 'newfoundland': 'NL',
'newfoundland and labrador': 'NL',
'nt': 'NT', 'nt': 'NT',
'northwest territories': 'NT', 'northwest territories': 'NT',
'ns': 'NS', 'ns': 'NS',
@ -54,6 +60,8 @@ PROVINCES_NORMALIZED = {
'quebec': 'QC', 'quebec': 'QC',
'sk': 'SK', 'sk': 'SK',
'saskatchewan': 'SK', 'saskatchewan': 'SK',
'yk': 'YK', 'yk': 'YT',
'yukon': 'YK', 'yt': 'YT',
'yukon': 'YT',
'yukon territory': 'YT',
} }

View File

@ -475,6 +475,11 @@ local flavors:
has been removed from the province list in favor of the new has been removed from the province list in favor of the new
official designation "Aceh (ACE)". official designation "Aceh (ACE)".
* Canada (ca) -- The province "Newfoundland and Labrador" has
had its province code updated to "NL", rather than the
older "NF". In addition, the Yukon Territory has had its
province code corrected to "YT", instead of "YK".
FormSet updates FormSet updates
~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~

View File

@ -1,3 +1,5 @@
import warnings
from django.contrib.localflavor.ca.forms import (CAPostalCodeField, from django.contrib.localflavor.ca.forms import (CAPostalCodeField,
CAPhoneNumberField, CAProvinceField, CAProvinceSelect, CAPhoneNumberField, CAProvinceField, CAProvinceSelect,
CASocialInsuranceNumberField) CASocialInsuranceNumberField)
@ -6,6 +8,17 @@ from utils import LocalFlavorTestCase
class CALocalFlavorTests(LocalFlavorTestCase): class CALocalFlavorTests(LocalFlavorTestCase):
def setUp(self):
self.save_warnings_state()
warnings.filterwarnings(
"ignore",
category=RuntimeWarning,
module='django.contrib.localflavor.ca.ca_provinces'
)
def tearDown(self):
self.restore_warnings_state()
def test_CAProvinceSelect(self): def test_CAProvinceSelect(self):
f = CAProvinceSelect() f = CAProvinceSelect()
out = u'''<select name="province"> out = u'''<select name="province">
@ -13,7 +26,7 @@ class CALocalFlavorTests(LocalFlavorTestCase):
<option value="BC">British Columbia</option> <option value="BC">British Columbia</option>
<option value="MB">Manitoba</option> <option value="MB">Manitoba</option>
<option value="NB">New Brunswick</option> <option value="NB">New Brunswick</option>
<option value="NF">Newfoundland and Labrador</option> <option value="NL">Newfoundland and Labrador</option>
<option value="NT">Northwest Territories</option> <option value="NT">Northwest Territories</option>
<option value="NS">Nova Scotia</option> <option value="NS">Nova Scotia</option>
<option value="NU">Nunavut</option> <option value="NU">Nunavut</option>
@ -21,7 +34,7 @@ class CALocalFlavorTests(LocalFlavorTestCase):
<option value="PE">Prince Edward Island</option> <option value="PE">Prince Edward Island</option>
<option value="QC">Quebec</option> <option value="QC">Quebec</option>
<option value="SK">Saskatchewan</option> <option value="SK">Saskatchewan</option>
<option value="YK">Yukon</option> <option value="YT">Yukon</option>
</select>''' </select>'''
self.assertEqual(f.render('province', 'AB'), out) self.assertEqual(f.render('province', 'AB'), out)