3
from django.contrib.localflavor.cz.forms import (CZPostalCodeField,
4
CZRegionSelect, CZBirthNumberField, CZICNumberField)
6
from django.core.exceptions import ValidationError
7
from django.test import SimpleTestCase
10
class CZLocalFlavorTests(SimpleTestCase):
12
self.save_warnings_state()
13
warnings.filterwarnings(
15
category=DeprecationWarning,
16
module='django.contrib.localflavor.cz.forms'
20
self.restore_warnings_state()
22
def test_CZRegionSelect(self):
24
out = u'''<select name="regions">
25
<option value="PR">Prague</option>
26
<option value="CE">Central Bohemian Region</option>
27
<option value="SO">South Bohemian Region</option>
28
<option value="PI">Pilsen Region</option>
29
<option value="CA">Carlsbad Region</option>
30
<option value="US">Usti Region</option>
31
<option value="LB">Liberec Region</option>
32
<option value="HK">Hradec Region</option>
33
<option value="PA">Pardubice Region</option>
34
<option value="VY">Vysocina Region</option>
35
<option value="SM">South Moravian Region</option>
36
<option value="OL">Olomouc Region</option>
37
<option value="ZL">Zlin Region</option>
38
<option value="MS">Moravian-Silesian Region</option>
40
self.assertHTMLEqual(f.render('regions', 'TT'), out)
42
def test_CZPostalCodeField(self):
43
error_format = [u'Enter a postal code in the format XXXXX or XXX XX.']
50
'84545x': error_format,
51
'123456': error_format,
53
'123 4': error_format,
55
self.assertFieldOutput(CZPostalCodeField, valid, invalid)
57
def test_CZBirthNumberField(self):
58
error_format = [u'Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX.']
59
error_invalid = [u'Enter a valid birth number.']
61
'880523/1237': '880523/1237',
62
'8805231237': '8805231237',
63
'880523/000': '880523/000',
64
'880523000': '880523000',
65
'882101/0011': '882101/0011',
68
'123456/12': error_format,
69
'123456/12345': error_format,
70
'12345612': error_format,
71
'12345612345': error_format,
72
'880523/1239': error_invalid,
73
'8805231239': error_invalid,
74
'990101/0011': error_invalid,
76
self.assertFieldOutput(CZBirthNumberField, valid, invalid)
78
# These tests should go away in 1.4.
79
# http://code.djangoproject.com/ticket/14593
80
f = CZBirthNumberField()
81
self.assertEqual(f.clean('880523/1237', 'm'), '880523/1237'),
82
self.assertEqual(f.clean('885523/1231', 'f'), '885523/1231')
83
self.assertRaisesRegexp(ValidationError, unicode(error_invalid),
84
f.clean, '881523/0000', 'm')
85
self.assertRaisesRegexp(ValidationError, unicode(error_invalid),
86
f.clean, '885223/0000', 'm')
87
self.assertRaisesRegexp(ValidationError, unicode(error_invalid),
88
f.clean, '881523/0000', 'f')
89
self.assertRaisesRegexp(ValidationError, unicode(error_invalid),
90
f.clean, '885223/0000', 'f')
92
def test_CZICNumberField(self):
93
error_invalid = [u'Enter a valid IC number.']
95
'12345679': '12345679',
96
'12345601': '12345601',
97
'12345661': '12345661',
98
'12345610': '12345610',
101
'1234567': error_invalid,
102
'12345660': error_invalid,
103
'12345600': error_invalid,
105
self.assertFieldOutput(CZICNumberField, valid, invalid)