mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	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
This commit is contained in:
		| @@ -73,7 +73,7 @@ class CZBirthNumberField(Field): | ||||
|             import warnings | ||||
|             warnings.warn( | ||||
|                 "Support for validating the gender of a CZ Birth number has been deprecated.", | ||||
|                 DeprecationWarning) | ||||
|                 PendingDeprecationWarning) | ||||
|             if gender == 'f': | ||||
|                 female_const = 50 | ||||
|             elif gender == 'm': | ||||
|   | ||||
| @@ -539,3 +539,11 @@ GeoDjango | ||||
|     to indicate possible faulty application code.  A warning is now raised | ||||
|     if :meth:`~django.contrib.gis.geos.GEOSGeometry.transform` is called when | ||||
|     the SRID of the geometry is less than 0 or ``None``. | ||||
|  | ||||
| ``CZBirthNumberField.clean`` | ||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||||
|  | ||||
| Previously this field's ``clean()`` method accepted a second, gender, argument | ||||
| which allowed stronger validation checks to be made, however since this | ||||
| argument could never actually be passed from the Django form machinery it is | ||||
| now pending deprecation. | ||||
|   | ||||
| @@ -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) | ||||
|   | ||||
| @@ -1,6 +1,3 @@ | ||||
| # -*- coding: utf-8 -*- | ||||
| from localflavor.cz import tests as localflavor_cz_tests | ||||
|  | ||||
| from localflavor.ar import ARLocalFlavorTests | ||||
| from localflavor.at import ATLocalFlavorTests | ||||
| from localflavor.au import AULocalFlavorTests | ||||
| @@ -9,6 +6,7 @@ from localflavor.br import BRLocalFlavorTests | ||||
| from localflavor.ca import CALocalFlavorTests | ||||
| from localflavor.ch import CHLocalFlavorTests | ||||
| from localflavor.cl import CLLocalFlavorTests | ||||
| from localflavor.cz import CZLocalFlavorTests | ||||
| from localflavor.de import DELocalFlavorTests | ||||
| from localflavor.es import ESLocalFlavorTests | ||||
| from localflavor.fi import FILocalFlavorTests | ||||
| @@ -33,7 +31,3 @@ from localflavor.us import USLocalFlavorTests | ||||
| from localflavor.uy import UYLocalFlavorTests | ||||
| from localflavor.za import ZALocalFlavorTests | ||||
|  | ||||
|  | ||||
| __test__ = { | ||||
|     'localflavor_cz_tests': localflavor_cz_tests, | ||||
| } | ||||
|   | ||||
| @@ -12,36 +12,15 @@ from validators import TestFieldWithValidators | ||||
| from widgets import * | ||||
|  | ||||
| from regressiontests.forms.localflavortests import ( | ||||
|     __test__, | ||||
|     ARLocalFlavorTests, | ||||
|     ATLocalFlavorTests, | ||||
|     AULocalFlavorTests, | ||||
|     BELocalFlavorTests, | ||||
|     BRLocalFlavorTests, | ||||
|     CALocalFlavorTests, | ||||
|     CHLocalFlavorTests, | ||||
|     CLLocalFlavorTests, | ||||
|     DELocalFlavorTests, | ||||
|     ESLocalFlavorTests, | ||||
|     FILocalFlavorTests, | ||||
|     FRLocalFlavorTests, | ||||
|     GenericLocalFlavorTests, | ||||
|     IDLocalFlavorTests, | ||||
|     IELocalFlavorTests, | ||||
|     ILLocalFlavorTests, | ||||
|     ISLocalFlavorTests, | ||||
|     ITLocalFlavorTests, | ||||
|     JPLocalFlavorTests, | ||||
|     KWLocalFlavorTests, | ||||
|     NLLocalFlavorTests, | ||||
|     PLLocalFlavorTests, | ||||
|     PTLocalFlavorTests, | ||||
|     ROLocalFlavorTests, | ||||
|     SELocalFlavorTests, | ||||
|     SKLocalFlavorTests, | ||||
|     TRLocalFlavorTests, | ||||
|     UKLocalFlavorTests, | ||||
|     USLocalFlavorTests, | ||||
|     UYLocalFlavorTests, | ||||
|     ZALocalFlavorTests, | ||||
|     ARLocalFlavorTests, ATLocalFlavorTests, AULocalFlavorTests, | ||||
|     BELocalFlavorTests, BRLocalFlavorTests, CALocalFlavorTests, | ||||
|     CHLocalFlavorTests, CLLocalFlavorTests, CZLocalFlavorTests, | ||||
|     DELocalFlavorTests, ESLocalFlavorTests, FILocalFlavorTests, | ||||
|     FRLocalFlavorTests, GenericLocalFlavorTests, IDLocalFlavorTests, | ||||
|     IELocalFlavorTests, ILLocalFlavorTests, ISLocalFlavorTests, | ||||
|     ITLocalFlavorTests, JPLocalFlavorTests, KWLocalFlavorTests, | ||||
|     NLLocalFlavorTests, PLLocalFlavorTests, PTLocalFlavorTests, | ||||
|     ROLocalFlavorTests, SELocalFlavorTests, SKLocalFlavorTests, | ||||
|     TRLocalFlavorTests, UKLocalFlavorTests, USLocalFlavorTests, | ||||
|     UYLocalFlavorTests, ZALocalFlavorTests | ||||
| ) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user