Permalink
Browse files

[1.2.X] Converted the Czech localflavor tests to be unittests. We hav…

…e always been at war with doctests. Thanks to Idan Gazit. Partial backport of [15062].

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@15063 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
1 parent b1487c4 commit 05588a1897dd5b008ce965361981d2860b29b75a @alex alex committed Dec 27, 2010
@@ -138,4 +138,3 @@ def clean(self, value):
return u'%s' % value
raise ValidationError(self.error_messages['invalid'])
-
@@ -1,126 +1,96 @@
-# -*- coding: utf-8 -*-
-# Tests for the contrib/localflavor/ CZ Form Fields
+from django.contrib.localflavor.cz.forms import (CZPostalCodeField,
+ CZRegionSelect, CZBirthNumberField, CZICNumberField)
-tests = r"""
-# CZPostalCodeField #########################################################
+from django.core.exceptions import ValidationError
+from utils import LocalFlavorTestCase
->>> 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.']
-# CZRegionSelect ############################################################
+class CZLocalFlavorTests(LocalFlavorTestCase):
+ 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)
->>> 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>'
+ 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)
-# CZBirthNumberField ########################################################
+ 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)
->>> 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.']
+ # 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')
+ for args in [
+ ('881523/0000', 'm'),
+ ('885223/0000', 'm'),
+ ('881523/0000', 'f'),
+ ('885223/0000', 'f'),
+ ]:
+ try:
+ f.clean(*args)
+ except ValidationError, e:
+ self.assertEqual(e.messages, error_invalid)
+ else:
+ self.fail()
-# CZICNumberField ########################################################
-
->>> 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_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.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
@@ -31,7 +29,3 @@
from localflavor.uy import UYLocalFlavorTests
from localflavor.za import ZALocalFlavorTests
-
-__test__ = {
- 'localflavor_cz_tests': localflavor_cz_tests,
-}
@@ -12,33 +12,14 @@
from widgets import *
from regressiontests.forms.localflavortests import (
- __test__,
- ARLocalFlavorTests,
- ATLocalFlavorTests,
- AULocalFlavorTests,
- BRLocalFlavorTests,
- CALocalFlavorTests,
- CHLocalFlavorTests,
- CLLocalFlavorTests,
- DELocalFlavorTests,
- ESLocalFlavorTests,
- FILocalFlavorTests,
- FRLocalFlavorTests,
- GenericLocalFlavorTests,
- IDLocalFlavorTests,
- IELocalFlavorTests,
- ISLocalFlavorTests,
- ITLocalFlavorTests,
- JPLocalFlavorTests,
- KWLocalFlavorTests,
- NLLocalFlavorTests,
- PLLocalFlavorTests,
- PTLocalFlavorTests,
- ROLocalFlavorTests,
- SELocalFlavorTests,
- SKLocalFlavorTests,
- UKLocalFlavorTests,
- USLocalFlavorTests,
- UYLocalFlavorTests,
- ZALocalFlavorTests,
+ ARLocalFlavorTests, ATLocalFlavorTests, AULocalFlavorTests,
+ BRLocalFlavorTests, CALocalFlavorTests, CHLocalFlavorTests,
+ CLLocalFlavorTests, CZLocalFlavorTests, DELocalFlavorTests,
+ ESLocalFlavorTests, FILocalFlavorTests, FRLocalFlavorTests,
+ GenericLocalFlavorTests, IDLocalFlavorTests, IELocalFlavorTests,
+ ISLocalFlavorTests, ITLocalFlavorTests, JPLocalFlavorTests,
+ KWLocalFlavorTests, NLLocalFlavorTests, PLLocalFlavorTests,
+ PTLocalFlavorTests, ROLocalFlavorTests, SELocalFlavorTests,
+ SKLocalFlavorTests, UKLocalFlavorTests, USLocalFlavorTests,
+ UYLocalFlavorTests, ZALocalFlavorTests
)

0 comments on commit 05588a1

Please sign in to comment.