Author: Alex Date: 2010-12-18 14:29:54 -0600 (Sat, 18 Dec 2010) New Revision: 14935
Modified: django/trunk/tests/regressiontests/forms/localflavor/ch.py django/trunk/tests/regressiontests/forms/localflavortests.py django/trunk/tests/regressiontests/forms/tests/__init__.py Log: Converted Swiss localflavor doctests to unittests. Thanks to Idan Gazit for the patch. Modified: django/trunk/tests/regressiontests/forms/localflavor/ch.py =================================================================== --- django/trunk/tests/regressiontests/forms/localflavor/ch.py 2010-12-18 20:29:44 UTC (rev 14934) +++ django/trunk/tests/regressiontests/forms/localflavor/ch.py 2010-12-18 20:29:54 UTC (rev 14935) @@ -1,58 +1,75 @@ -# -*- coding: utf-8 -*- -# Tests for the contrib/localflavor/ CH form fields. +from django.contrib.localflavor.ch.forms import (CHZipCodeField, + CHPhoneNumberField, CHIdentityCardNumberField, CHStateSelect) -tests = r""" -# CHZipCodeField ############################################################ +from utils import LocalFlavorTestCase ->>> from django.contrib.localflavor.ch.forms import CHZipCodeField ->>> f = CHZipCodeField() ->>> f.clean('800x') -Traceback (most recent call last): -... -ValidationError: [u'Enter a zip code in the format XXXX.'] ->>> f.clean('80 00') -Traceback (most recent call last): -... -ValidationError: [u'Enter a zip code in the format XXXX.'] ->>> f.clean('8000') -u'8000' -# CHPhoneNumberField ######################################################## +class CHLocalFlavorTests(LocalFlavorTestCase): + def test_CHStateSelect(self): + f = CHStateSelect() + out = u'''<select name="state"> +<option value="AG" selected="selected">Aargau</option> +<option value="AI">Appenzell Innerrhoden</option> +<option value="AR">Appenzell Ausserrhoden</option> +<option value="BS">Basel-Stadt</option> +<option value="BL">Basel-Land</option> +<option value="BE">Berne</option> +<option value="FR">Fribourg</option> +<option value="GE">Geneva</option> +<option value="GL">Glarus</option> +<option value="GR">Graubuenden</option> +<option value="JU">Jura</option> +<option value="LU">Lucerne</option> +<option value="NE">Neuchatel</option> +<option value="NW">Nidwalden</option> +<option value="OW">Obwalden</option> +<option value="SH">Schaffhausen</option> +<option value="SZ">Schwyz</option> +<option value="SO">Solothurn</option> +<option value="SG">St. Gallen</option> +<option value="TG">Thurgau</option> +<option value="TI">Ticino</option> +<option value="UR">Uri</option> +<option value="VS">Valais</option> +<option value="VD">Vaud</option> +<option value="ZG">Zug</option> +<option value="ZH">Zurich</option> +</select>''' + self.assertEqual(f.render('state', 'AG'), out) + + def test_CHZipCodeField(self): + error_format = [u'Enter a zip code in the format XXXX.'] + valid = { + '1234': '1234', + '0000': '0000', + } + invalid = { + '800x': error_format, + '80 00': error_format, + } + self.assertFieldOutput(CHZipCodeField, valid, invalid) + + def test_CHPhoneNumberField(self): + error_format = [u'Phone numbers must be in 0XX XXX XX XX format.'] + valid = { + '012 345 67 89': '012 345 67 89', + '0123456789': '012 345 67 89', + } + invalid = { + '01234567890': error_format, + '1234567890': error_format, + } + self.assertFieldOutput(CHPhoneNumberField, valid, invalid) + + def test_CHIdentityCardNumberField(self): + error_format = [u'Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.'] + valid = { + 'C1234567<0': 'C1234567<0', + '2123456700': '2123456700', + } + invalid = { + 'C1234567<1': error_format, + '2123456701': error_format, + } + self.assertFieldOutput(CHIdentityCardNumberField, valid, invalid) ->>> from django.contrib.localflavor.ch.forms import CHPhoneNumberField ->>> f = CHPhoneNumberField() ->>> f.clean('01234567890') -Traceback (most recent call last): -... -ValidationError: [u'Phone numbers must be in 0XX XXX XX XX format.'] ->>> f.clean('1234567890') -Traceback (most recent call last): -... -ValidationError: [u'Phone numbers must be in 0XX XXX XX XX format.'] ->>> f.clean('0123456789') -u'012 345 67 89' - -# CHIdentityCardNumberField ################################################# - ->>> from django.contrib.localflavor.ch.forms import CHIdentityCardNumberField ->>> f = CHIdentityCardNumberField() ->>> f.clean('C1234567<0') -u'C1234567<0' ->>> f.clean('C1234567<1') -Traceback (most recent call last): -... -ValidationError: [u'Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.'] ->>> f.clean('2123456700') -u'2123456700' ->>> f.clean('2123456701') -Traceback (most recent call last): -... -ValidationError: [u'Enter a valid Swiss identity or passport card number in X1234567<0 or 1234567890 format.'] - -# CHStateSelect ############################################################# - ->>> from django.contrib.localflavor.ch.forms import CHStateSelect ->>> w = CHStateSelect() ->>> w.render('state', 'AG') -u'<select name="state">\n<option value="AG" selected="selected">Aargau</option>\n<option value="AI">Appenzell Innerrhoden</option>\n<option value="AR">Appenzell Ausserrhoden</option>\n<option value="BS">Basel-Stadt</option>\n<option value="BL">Basel-Land</option>\n<option value="BE">Berne</option>\n<option value="FR">Fribourg</option>\n<option value="GE">Geneva</option>\n<option value="GL">Glarus</option>\n<option value="GR">Graubuenden</option>\n<option value="JU">Jura</option>\n<option value="LU">Lucerne</option>\n<option value="NE">Neuchatel</option>\n<option value="NW">Nidwalden</option>\n<option value="OW">Obwalden</option>\n<option value="SH">Schaffhausen</option>\n<option value="SZ">Schwyz</option>\n<option value="SO">Solothurn</option>\n<option value="SG">St. Gallen</option>\n<option value="TG">Thurgau</option>\n<option value="TI">Ticino</option>\n<option value="UR">Uri</option>\n<option value="VS">Valais</option>\n<option value="VD">Vaud</option>\n<option value="ZG">Zug</option>\n<option value="ZH">Zurich</option>\n</select>' -""" Modified: django/trunk/tests/regressiontests/forms/localflavortests.py =================================================================== --- django/trunk/tests/regressiontests/forms/localflavortests.py 2010-12-18 20:29:44 UTC (rev 14934) +++ django/trunk/tests/regressiontests/forms/localflavortests.py 2010-12-18 20:29:54 UTC (rev 14935) @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -from localflavor.ch import tests as localflavor_ch_tests from localflavor.cl import tests as localflavor_cl_tests from localflavor.cz import tests as localflavor_cz_tests from localflavor.es import tests as localflavor_es_tests @@ -30,12 +29,12 @@ from localflavor.be import BELocalFlavorTests from localflavor.br import BRLocalFlavorTests from localflavor.ca import CALocalFlavorTests +from localflavor.ch import CHLocalFlavorTests from localflavor.il import ILLocalFlavorTests from localflavor.tr import TRLocalFlavorTests __test__ = { - 'localflavor_ch_tests': localflavor_ch_tests, 'localflavor_cl_tests': localflavor_cl_tests, 'localflavor_cz_tests': localflavor_cz_tests, 'localflavor_es_tests': localflavor_es_tests, Modified: django/trunk/tests/regressiontests/forms/tests/__init__.py =================================================================== --- django/trunk/tests/regressiontests/forms/tests/__init__.py 2010-12-18 20:29:44 UTC (rev 14934) +++ django/trunk/tests/regressiontests/forms/tests/__init__.py 2010-12-18 20:29:54 UTC (rev 14935) @@ -19,6 +19,7 @@ BELocalFlavorTests, BRLocalFlavorTests, CALocalFlavorTests, + CHLocalFlavorTests, DELocalFlavorTests, ILLocalFlavorTests, TRLocalFlavorTests, -- You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-upda...@googlegroups.com. To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-updates?hl=en.