/tests/regressiontests/forms/localflavor/cz.py

https://github.com/blacktear23/django · Python · 105 lines · 93 code · 10 blank · 2 comment · 0 complexity · a0fd7affbadc8853388b5499c1e63431 MD5 · raw file

  1. import warnings
  2. from django.contrib.localflavor.cz.forms import (CZPostalCodeField,
  3. CZRegionSelect, CZBirthNumberField, CZICNumberField)
  4. from django.core.exceptions import ValidationError
  5. from utils import LocalFlavorTestCase
  6. class CZLocalFlavorTests(LocalFlavorTestCase):
  7. def setUp(self):
  8. self.save_warnings_state()
  9. warnings.filterwarnings(
  10. "ignore",
  11. category=PendingDeprecationWarning,
  12. module='django.contrib.localflavor.cz.forms'
  13. )
  14. def tearDown(self):
  15. self.restore_warnings_state()
  16. def test_CZRegionSelect(self):
  17. f = CZRegionSelect()
  18. out = u'''<select name="regions">
  19. <option value="PR">Prague</option>
  20. <option value="CE">Central Bohemian Region</option>
  21. <option value="SO">South Bohemian Region</option>
  22. <option value="PI">Pilsen Region</option>
  23. <option value="CA">Carlsbad Region</option>
  24. <option value="US">Usti Region</option>
  25. <option value="LB">Liberec Region</option>
  26. <option value="HK">Hradec Region</option>
  27. <option value="PA">Pardubice Region</option>
  28. <option value="VY">Vysocina Region</option>
  29. <option value="SM">South Moravian Region</option>
  30. <option value="OL">Olomouc Region</option>
  31. <option value="ZL">Zlin Region</option>
  32. <option value="MS">Moravian-Silesian Region</option>
  33. </select>'''
  34. self.assertEqual(f.render('regions', 'TT'), out)
  35. def test_CZPostalCodeField(self):
  36. error_format = [u'Enter a postal code in the format XXXXX or XXX XX.']
  37. valid = {
  38. '91909': '91909',
  39. '917 01': '91701',
  40. '12345': '12345',
  41. }
  42. invalid = {
  43. '84545x': error_format,
  44. '123456': error_format,
  45. '1234': error_format,
  46. '123 4': error_format,
  47. }
  48. self.assertFieldOutput(CZPostalCodeField, valid, invalid)
  49. def test_CZBirthNumberField(self):
  50. error_format = [u'Enter a birth number in the format XXXXXX/XXXX or XXXXXXXXXX.']
  51. error_invalid = [u'Enter a valid birth number.']
  52. valid = {
  53. '880523/1237': '880523/1237',
  54. '8805231237': '8805231237',
  55. '880523/000': '880523/000',
  56. '880523000': '880523000',
  57. '882101/0011': '882101/0011',
  58. }
  59. invalid = {
  60. '123456/12': error_format,
  61. '123456/12345': error_format,
  62. '12345612': error_format,
  63. '12345612345': error_format,
  64. '880523/1239': error_invalid,
  65. '8805231239': error_invalid,
  66. '990101/0011': error_invalid,
  67. }
  68. self.assertFieldOutput(CZBirthNumberField, valid, invalid)
  69. # These tests should go away in 1.4.
  70. # http://code.djangoproject.com/ticket/14593
  71. f = CZBirthNumberField()
  72. self.assertEqual(f.clean('880523/1237', 'm'), '880523/1237'),
  73. self.assertEqual(f.clean('885523/1231', 'f'), '885523/1231')
  74. self.assertRaisesRegexp(ValidationError, unicode(error_invalid),
  75. f.clean, '881523/0000', 'm')
  76. self.assertRaisesRegexp(ValidationError, unicode(error_invalid),
  77. f.clean, '885223/0000', 'm')
  78. self.assertRaisesRegexp(ValidationError, unicode(error_invalid),
  79. f.clean, '881523/0000', 'f')
  80. self.assertRaisesRegexp(ValidationError, unicode(error_invalid),
  81. f.clean, '885223/0000', 'f')
  82. def test_CZICNumberField(self):
  83. error_invalid = [u'Enter a valid IC number.']
  84. valid ={
  85. '12345679': '12345679',
  86. '12345601': '12345601',
  87. '12345661': '12345661',
  88. '12345610': '12345610',
  89. }
  90. invalid = {
  91. '1234567': error_invalid,
  92. '12345660': error_invalid,
  93. '12345600': error_invalid,
  94. }
  95. self.assertFieldOutput(CZICNumberField, valid, invalid)