Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Converted Australian localfavor doctests into unittests. We have alwa…

…ys been at war with doctests. Thanks to Idan Gazit for the patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@14931 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit c9b79c59bb102c85d6b968a126abec6ae966e814 1 parent 152ae52
@alex alex authored
View
162 tests/regressiontests/forms/localflavor/au.py
@@ -1,127 +1,13 @@
-# -*- coding: utf-8 -*-
-# Tests for the contrib/localflavor/ AU form fields.
+from django.contrib.localflavor.au.forms import (AUPostCodeField,
+ AUPhoneNumberField, AUStateSelect)
-tests = r"""
-## AUPostCodeField ##########################################################
+from utils import LocalFlavorTestCase
-A field that accepts a four digit Australian post code.
->>> from django.contrib.localflavor.au.forms import AUPostCodeField
->>> f = AUPostCodeField()
->>> f.clean('1234')
-u'1234'
->>> f.clean('2000')
-u'2000'
->>> f.clean('abcd')
-Traceback (most recent call last):
-...
-ValidationError: [u'Enter a 4 digit post code.']
->>> f.clean('20001')
-Traceback (most recent call last):
-...
-ValidationError: [u'Enter a 4 digit post code.']
->>> 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 = AUPostCodeField(required=False)
->>> f.clean('1234')
-u'1234'
->>> f.clean('2000')
-u'2000'
->>> f.clean('abcd')
-Traceback (most recent call last):
-...
-ValidationError: [u'Enter a 4 digit post code.']
->>> f.clean('20001')
-Traceback (most recent call last):
-...
-ValidationError: [u'Enter a 4 digit post code.']
->>> f.clean(None)
-u''
->>> f.clean('')
-u''
-
-## AUPhoneNumberField ########################################################
-
-A field that accepts a 10 digit Australian phone number.
-Allows spaces and parentheses around area code.
-
->>> from django.contrib.localflavor.au.forms import AUPhoneNumberField
->>> f = AUPhoneNumberField()
->>> f.clean('1234567890')
-u'1234567890'
->>> f.clean('0213456789')
-u'0213456789'
->>> f.clean('02 13 45 67 89')
-u'0213456789'
->>> f.clean('(02) 1345 6789')
-u'0213456789'
->>> f.clean('(02) 1345-6789')
-u'0213456789'
->>> f.clean('(02)1345-6789')
-u'0213456789'
->>> f.clean('0408 123 456')
-u'0408123456'
->>> f.clean('123')
-Traceback (most recent call last):
-...
-ValidationError: [u'Phone numbers must contain 10 digits.']
->>> f.clean('1800DJANGO')
-Traceback (most recent call last):
-...
-ValidationError: [u'Phone numbers must contain 10 digits.']
->>> 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 = AUPhoneNumberField(required=False)
->>> f.clean('1234567890')
-u'1234567890'
->>> f.clean('0213456789')
-u'0213456789'
->>> f.clean('02 13 45 67 89')
-u'0213456789'
->>> f.clean('(02) 1345 6789')
-u'0213456789'
->>> f.clean('(02) 1345-6789')
-u'0213456789'
->>> f.clean('(02)1345-6789')
-u'0213456789'
->>> f.clean('0408 123 456')
-u'0408123456'
->>> f.clean('123')
-Traceback (most recent call last):
-...
-ValidationError: [u'Phone numbers must contain 10 digits.']
->>> f.clean('1800DJANGO')
-Traceback (most recent call last):
-...
-ValidationError: [u'Phone numbers must contain 10 digits.']
->>> f.clean(None)
-u''
->>> f.clean('')
-u''
-
-## AUStateSelect #############################################################
-
-AUStateSelect is a Select widget that uses a list of Australian
-states/territories as its choices.
-
->>> from django.contrib.localflavor.au.forms import AUStateSelect
->>> f = AUStateSelect()
->>> print f.render('state', 'NSW')
-<select name="state">
+class AULocalFlavorTests(LocalFlavorTestCase):
+ def test_AUStateSelect(self):
+ f = AUStateSelect()
+ out = u'''<select name="state">
<option value="ACT">Australian Capital Territory</option>
<option value="NSW" selected="selected">New South Wales</option>
<option value="NT">Northern Territory</option>
@@ -130,5 +16,35 @@
<option value="TAS">Tasmania</option>
<option value="VIC">Victoria</option>
<option value="WA">Western Australia</option>
-</select>
-"""
+</select>'''
+ self.assertEqual(f.render('state', 'NSW'), out)
+
+ def test_AUPostCodeField(self):
+ error_format = [u'Enter a 4 digit post code.']
+ valid = {
+ '1234': '1234',
+ '2000': '2000',
+ }
+ invalid = {
+ 'abcd': error_format,
+ '20001': error_format,
+ }
+ self.assertFieldOutput(AUPostCodeField, valid, invalid)
+
+ def test_AUPhoneNumberField(self):
+ error_format = [u'Phone numbers must contain 10 digits.']
+ valid = {
+ '1234567890': '1234567890',
+ '0213456789': '0213456789',
+ '02 13 45 67 89': '0213456789',
+ '(02) 1345 6789': '0213456789',
+ '(02) 1345-6789': '0213456789',
+ '(02)1345-6789': '0213456789',
+ '0408 123 456': '0408123456',
+ }
+ invalid = {
+ '123': error_format,
+ '1800DJANGO': error_format,
+ }
+ self.assertFieldOutput(AUPhoneNumberField, valid, invalid)
+
View
3  tests/regressiontests/forms/localflavortests.py
@@ -1,5 +1,4 @@
# -*- coding: utf-8 -*-
-from localflavor.au import tests as localflavor_au_tests
from localflavor.br import tests as localflavor_br_tests
from localflavor.ca import tests as localflavor_ca_tests
from localflavor.ch import tests as localflavor_ch_tests
@@ -29,13 +28,13 @@
from localflavor.ar import ARLocalFlavorTests
from localflavor.at import ATLocalFlavorTests
from localflavor.de import DELocalFlavorTests
+from localflavor.au import AULocalFlavorTests
from localflavor.be import BELocalFlavorTests
from localflavor.il import ILLocalFlavorTests
from localflavor.tr import TRLocalFlavorTests
__test__ = {
- 'localflavor_au_tests': localflavor_au_tests,
'localflavor_br_tests': localflavor_br_tests,
'localflavor_ca_tests': localflavor_ca_tests,
'localflavor_ch_tests': localflavor_ch_tests,
View
1  tests/regressiontests/forms/tests/__init__.py
@@ -15,6 +15,7 @@
__test__,
ARLocalFlavorTests,
ATLocalFlavorTests,
+ AULocalFlavorTests,
BELocalFlavorTests,
DELocalFlavorTests,
ILLocalFlavorTests,
Please sign in to comment.
Something went wrong with that request. Please try again.