-
-
Notifications
You must be signed in to change notification settings - Fork 31.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixed #14593 -- change this warning to be a PendingDeprecationWarning…
…. Also converted the Czech localflavor tests to be unittests. We have always been at war with doctests. Thanks to Idan Gazit. git-svn-id: http://code.djangoproject.com/svn/django/trunk@15062 bcc190cf-cafb-0310-a4f2-bffc1f526a37
- Loading branch information
Showing
5 changed files
with
118 additions
and
158 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,126 +1,105 @@ | ||
# -*- coding: utf-8 -*- | ||
# Tests for the contrib/localflavor/ CZ Form Fields | ||
import warnings | ||
|
||
tests = r""" | ||
# CZPostalCodeField ######################################################### | ||
from django.contrib.localflavor.cz.forms import (CZPostalCodeField, | ||
CZRegionSelect, CZBirthNumberField, CZICNumberField) | ||
|
||
>>> from django.contrib.localflavor.cz.forms import CZPostalCodeField | ||
>>> f = CZPostalCodeField() | ||
>>> f.clean('84545x') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a postal code in the format XXXXX or XXX XX.'] | ||
>>> f.clean('91909') | ||
u'91909' | ||
>>> f.clean('917 01') | ||
u'91701' | ||
>>> f.clean('12345') | ||
u'12345' | ||
>>> f.clean('123456') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a postal code in the format XXXXX or XXX XX.'] | ||
>>> f.clean('1234') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a postal code in the format XXXXX or XXX XX.'] | ||
>>> f.clean('123 4') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a postal code in the format XXXXX or XXX XX.'] | ||
from django.core.exceptions import ValidationError | ||
from utils import LocalFlavorTestCase | ||
|
||
# CZRegionSelect ############################################################ | ||
|
||
>>> from django.contrib.localflavor.cz.forms import CZRegionSelect | ||
>>> w = CZRegionSelect() | ||
>>> w.render('regions', 'TT') | ||
u'<select name="regions">\n<option value="PR">Prague</option>\n<option value="CE">Central Bohemian Region</option>\n<option value="SO">South Bohemian Region</option>\n<option value="PI">Pilsen Region</option>\n<option value="CA">Carlsbad Region</option>\n<option value="US">Usti Region</option>\n<option value="LB">Liberec Region</option>\n<option value="HK">Hradec Region</option>\n<option value="PA">Pardubice Region</option>\n<option value="VY">Vysocina Region</option>\n<option value="SM">South Moravian Region</option>\n<option value="OL">Olomouc Region</option>\n<option value="ZL">Zlin Region</option>\n<option value="MS">Moravian-Silesian Region</option>\n</select>' | ||
class CZLocalFlavorTests(LocalFlavorTestCase): | ||
def setUp(self): | ||
self.save_warnings_state() | ||
warnings.filterwarnings( | ||
"ignore", | ||
category=PendingDeprecationWarning, | ||
module='django.contrib.localflavor.cz.forms' | ||
) | ||
|
||
# CZBirthNumberField ######################################################## | ||
def tearDown(self): | ||
self.restore_warnings_state() | ||
|
||
>>> from django.contrib.localflavor.cz.forms import CZBirthNumberField | ||
>>> f = CZBirthNumberField() | ||
>>> f.clean('880523/1237') | ||
u'880523/1237' | ||
>>> f.clean('8805231237') | ||
u'8805231237' | ||
>>> f.clean('880523/000') | ||
u'880523/000' | ||
>>> f.clean('880523000') | ||
u'880523000' | ||
>>> f.clean('882101/0011') | ||
u'882101/0011' | ||
>>> f.clean('880523/1237', 'm') | ||
u'880523/1237' | ||
>>> f.clean('885523/1231', 'f') | ||
u'885523/1231' | ||
>>> f.clean('123456/12') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX.'] | ||
>>> f.clean('123456/12345') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX.'] | ||
>>> f.clean('12345612') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX.'] | ||
>>> f.clean('12345612345') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX.'] | ||
>>> f.clean('881523/0000', 'm') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a valid birth number.'] | ||
>>> f.clean('885223/0000', 'm') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a valid birth number.'] | ||
>>> f.clean('881223/0000', 'f') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a valid birth number.'] | ||
>>> f.clean('886523/0000', 'f') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a valid birth number.'] | ||
>>> f.clean('880523/1239') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a valid birth number.'] | ||
>>> f.clean('8805231239') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a valid birth number.'] | ||
>>> f.clean('990101/0011') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a valid birth number.'] | ||
def test_CZRegionSelect(self): | ||
f = CZRegionSelect() | ||
out = u'''<select name="regions"> | ||
<option value="PR">Prague</option> | ||
<option value="CE">Central Bohemian Region</option> | ||
<option value="SO">South Bohemian Region</option> | ||
<option value="PI">Pilsen Region</option> | ||
<option value="CA">Carlsbad Region</option> | ||
<option value="US">Usti Region</option> | ||
<option value="LB">Liberec Region</option> | ||
<option value="HK">Hradec Region</option> | ||
<option value="PA">Pardubice Region</option> | ||
<option value="VY">Vysocina Region</option> | ||
<option value="SM">South Moravian Region</option> | ||
<option value="OL">Olomouc Region</option> | ||
<option value="ZL">Zlin Region</option> | ||
<option value="MS">Moravian-Silesian Region</option> | ||
</select>''' | ||
self.assertEqual(f.render('regions', 'TT'), out) | ||
|
||
# CZICNumberField ######################################################## | ||
def test_CZPostalCodeField(self): | ||
error_format = [u'Enter a postal code in the format XXXXX or XXX XX.'] | ||
valid = { | ||
'91909': '91909', | ||
'917 01': '91701', | ||
'12345': '12345', | ||
} | ||
invalid = { | ||
'84545x': error_format, | ||
'123456': error_format, | ||
'1234': error_format, | ||
'123 4': error_format, | ||
} | ||
self.assertFieldOutput(CZPostalCodeField, valid, invalid) | ||
|
||
>>> from django.contrib.localflavor.cz.forms import CZICNumberField | ||
>>> f = CZICNumberField() | ||
>>> f.clean('12345679') | ||
u'12345679' | ||
>>> f.clean('12345601') | ||
u'12345601' | ||
>>> f.clean('12345661') | ||
u'12345661' | ||
>>> f.clean('12345610') | ||
u'12345610' | ||
>>> f.clean('1234567') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a valid IC number.'] | ||
>>> f.clean('12345660') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a valid IC number.'] | ||
>>> f.clean('12345600') | ||
Traceback (most recent call last): | ||
... | ||
ValidationError: [u'Enter a valid IC number.'] | ||
""" | ||
def test_CZBirthNumberField(self): | ||
error_format = [u'Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX.'] | ||
error_invalid = [u'Enter a valid birth number.'] | ||
valid = { | ||
'880523/1237': '880523/1237', | ||
'8805231237': '8805231237', | ||
'880523/000': '880523/000', | ||
'880523000': '880523000', | ||
'882101/0011': '882101/0011', | ||
} | ||
invalid = { | ||
'123456/12': error_format, | ||
'123456/12345': error_format, | ||
'12345612': error_format, | ||
'12345612345': error_format, | ||
'880523/1239': error_invalid, | ||
'8805231239': error_invalid, | ||
'990101/0011': error_invalid, | ||
} | ||
self.assertFieldOutput(CZBirthNumberField, valid, invalid) | ||
|
||
# These tests should go away in 1.4. | ||
# http://code.djangoproject.com/ticket/14593 | ||
f = CZBirthNumberField() | ||
self.assertEqual(f.clean('880523/1237', 'm'), '880523/1237'), | ||
self.assertEqual(f.clean('885523/1231', 'f'), '885523/1231') | ||
self.assertRaisesRegexp(ValidationError, unicode(error_invalid), | ||
f.clean, '881523/0000', 'm') | ||
self.assertRaisesRegexp(ValidationError, unicode(error_invalid), | ||
f.clean, '885223/0000', 'm') | ||
self.assertRaisesRegexp(ValidationError, unicode(error_invalid), | ||
f.clean, '881523/0000', 'f') | ||
self.assertRaisesRegexp(ValidationError, unicode(error_invalid), | ||
f.clean, '885223/0000', 'f') | ||
|
||
def test_CZICNumberField(self): | ||
error_invalid = [u'Enter a valid IC number.'] | ||
valid ={ | ||
'12345679': '12345679', | ||
'12345601': '12345601', | ||
'12345661': '12345661', | ||
'12345610': '12345610', | ||
} | ||
invalid = { | ||
'1234567': error_invalid, | ||
'12345660': error_invalid, | ||
'12345600': error_invalid, | ||
} | ||
self.assertFieldOutput(CZICNumberField, valid, invalid) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters