Author: Alex Date: 2010-12-18 14:30:38 -0600 (Sat, 18 Dec 2010) New Revision: 14939
Modified: django/trunk/tests/regressiontests/forms/localflavor/fr.py django/trunk/tests/regressiontests/forms/localflavortests.py django/trunk/tests/regressiontests/forms/tests/__init__.py Log: Converted French localflavor doctests into unittests. We have always been at war with doctests. Thanks to Idan Gazit. Modified: django/trunk/tests/regressiontests/forms/localflavor/fr.py =================================================================== --- django/trunk/tests/regressiontests/forms/localflavor/fr.py 2010-12-18 20:30:28 UTC (rev 14938) +++ django/trunk/tests/regressiontests/forms/localflavor/fr.py 2010-12-18 20:30:38 UTC (rev 14939) @@ -1,117 +1,40 @@ -# -*- coding: utf-8 -*- -# Tests for the contrib/localflavor/ FR form fields. +from django.contrib.localflavor.fr.forms import (FRZipCodeField, + FRPhoneNumberField, FRDepartmentSelect) -tests = r""" -# FRZipCodeField ############################################################# +from utils import LocalFlavorTestCase -FRZipCodeField validates that the data is a valid FR zipcode. ->>> from django.contrib.localflavor.fr.forms import FRZipCodeField ->>> f = FRZipCodeField() ->>> f.clean('75001') -u'75001' ->>> f.clean('93200') -u'93200' ->>> f.clean('2A200') -Traceback (most recent call last): -... -ValidationError: [u'Enter a zip code in the format XXXXX.'] ->>> f.clean('980001') -Traceback (most recent call last): -... -ValidationError: [u'Enter a zip code in the format XXXXX.'] ->>> f.clean(None) -Traceback (most recent call last): -... -ValidationError: [u'This field is required.'] ->>> f.clean('') -Traceback (most recent call last): -... -ValidationError: [u'This field is required.'] ->>> f = FRZipCodeField(required=False) ->>> f.clean('75001') -u'75001' ->>> f.clean('93200') -u'93200' ->>> f.clean('2A200') -Traceback (most recent call last): -... -ValidationError: [u'Enter a zip code in the format XXXXX.'] ->>> f.clean('980001') -Traceback (most recent call last): -... -ValidationError: [u'Enter a zip code in the format XXXXX.'] ->>> f.clean(None) -u'' ->>> f.clean('') -u'' +class FRLocalFlavorTests(LocalFlavorTestCase): + def test_FRZipCodeField(self): + error_format = [u'Enter a zip code in the format XXXXX.'] + valid = { + '75001': '75001', + '93200': '93200', + } + invalid = { + '2A200': error_format, + '980001': error_format, + } + self.assertFieldOutput(FRZipCodeField, valid, invalid) + def test_FRPhoneNumberField(self): + error_format = [u'Phone numbers must be in 0X XX XX XX XX format.'] + valid = { + '01 55 44 58 64': '01 55 44 58 64', + '0155445864': '01 55 44 58 64', + '01 5544 5864': '01 55 44 58 64', + '01 55.44.58.64': '01 55 44 58 64', + '01.55.44.58.64': '01 55 44 58 64', + } + invalid = { + '01,55,44,58,64': error_format, + '555 015 544': error_format, + } + self.assertFieldOutput(FRPhoneNumberField, valid, invalid) -# FRPhoneNumberField ########################################################## - -FRPhoneNumberField validates that the data is a valid french phone number. -It's normalized to 0X XX XX XX XX format. Dots are valid too. ->>> from django.contrib.localflavor.fr.forms import FRPhoneNumberField ->>> f = FRPhoneNumberField() ->>> f.clean('01 55 44 58 64') -u'01 55 44 58 64' ->>> f.clean('0155445864') -u'01 55 44 58 64' ->>> f.clean('01 5544 5864') -u'01 55 44 58 64' ->>> f.clean('01 55.44.58.64') -u'01 55 44 58 64' ->>> f.clean('01.55.44.58.64') -u'01 55 44 58 64' ->>> f.clean('01,55,44,58,64') -Traceback (most recent call last): -... -ValidationError: [u'Phone numbers must be in 0X XX XX XX XX format.'] ->>> f.clean('555 015 544') -Traceback (most recent call last): -... -ValidationError: [u'Phone numbers must be in 0X XX XX XX XX format.'] ->>> f.clean(None) -Traceback (most recent call last): -... -ValidationError: [u'This field is required.'] ->>> f.clean('') -Traceback (most recent call last): -... -ValidationError: [u'This field is required.'] - ->>> f = FRPhoneNumberField(required=False) ->>> f.clean('01 55 44 58 64') -u'01 55 44 58 64' ->>> f.clean('0155445864') -u'01 55 44 58 64' ->>> f.clean('01 5544 5864') -u'01 55 44 58 64' ->>> f.clean('01 55.44.58.64') -u'01 55 44 58 64' ->>> f.clean('01.55.44.58.64') -u'01 55 44 58 64' ->>> f.clean('01,55,44,58,64') -Traceback (most recent call last): -... -ValidationError: [u'Phone numbers must be in 0X XX XX XX XX format.'] ->>> f.clean('555 015 544') -Traceback (most recent call last): -... -ValidationError: [u'Phone numbers must be in 0X XX XX XX XX format.'] ->>> f.clean(None) -u'' ->>> f.clean('') -u'' - -# FRDepartmentSelect ############################################################### - -FRDepartmentSelect is a Select widget that uses a list of french departments -including DOM TOM ->>> from django.contrib.localflavor.fr.forms import FRDepartmentSelect ->>> w = FRDepartmentSelect() ->>> print w.render('dep', 'Paris') -<select name="dep"> + def test_FRDepartmentSelect(self): + f = FRDepartmentSelect() + out = u'''<select name="dep"> <option value="01">01 - Ain</option> <option value="02">02 - Aisne</option> <option value="03">03 - Allier</option> @@ -218,5 +141,5 @@ <option value="986">986 - Wallis et Futuna</option> <option value="987">987 - Polynesie Francaise</option> <option value="988">988 - Nouvelle-Caledonie</option> -</select> -""" +</select>''' + self.assertEqual(f.render('dep', 'Paris'), out) Modified: django/trunk/tests/regressiontests/forms/localflavortests.py =================================================================== --- django/trunk/tests/regressiontests/forms/localflavortests.py 2010-12-18 20:30:28 UTC (rev 14938) +++ django/trunk/tests/regressiontests/forms/localflavortests.py 2010-12-18 20:30:38 UTC (rev 14939) @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- from localflavor.cz import tests as localflavor_cz_tests -from localflavor.fr import tests as localflavor_fr_tests from localflavor.generic import tests as localflavor_generic_tests from localflavor.id import tests as localflavor_id_tests from localflavor.ie import tests as localflavor_ie_tests @@ -30,13 +29,13 @@ from localflavor.de import DELocalFlavorTests from localflavor.es import ESLocalFlavorTests from localflavor.fi import FILocalFlavorTests +from localflavor.fr import FRLocalFlavorTests from localflavor.il import ILLocalFlavorTests from localflavor.tr import TRLocalFlavorTests __test__ = { 'localflavor_cz_tests': localflavor_cz_tests, - 'localflavor_fr_tests': localflavor_fr_tests, 'localflavor_generic_tests': localflavor_generic_tests, 'localflavor_id_tests': localflavor_id_tests, 'localflavor_ie_tests': localflavor_ie_tests, Modified: django/trunk/tests/regressiontests/forms/tests/__init__.py =================================================================== --- django/trunk/tests/regressiontests/forms/tests/__init__.py 2010-12-18 20:30:28 UTC (rev 14938) +++ django/trunk/tests/regressiontests/forms/tests/__init__.py 2010-12-18 20:30:38 UTC (rev 14939) @@ -24,6 +24,7 @@ DELocalFlavorTests, ESLocalFlavorTests, FILocalFlavorTests, + FRLocalFlavorTests, 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.