Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

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...
commit c00c377e5402fcb658baff982cf908138974a2b5 1 parent 38d60c3
@alex alex authored
View
2  django/contrib/localflavor/cz/forms.py
@@ -73,7 +73,7 @@ def clean(self, value, gender=None):
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':
View
8 docs/releases/1.3.txt
@@ -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.
View
215 tests/regressiontests/forms/localflavor/cz.py
@@ -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)
View
8 tests/regressiontests/forms/localflavortests.py
@@ -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.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.uy import UYLocalFlavorTests
from localflavor.za import ZALocalFlavorTests
-
-__test__ = {
- 'localflavor_cz_tests': localflavor_cz_tests,
-}
View
43 tests/regressiontests/forms/tests/__init__.py
@@ -12,36 +12,15 @@
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
)
Please sign in to comment.
Something went wrong with that request. Please try again.