Commit 5c3ede21 authored by Alex Gaynor's avatar Alex Gaynor
Browse files

[1.2.X] Converted Japanese localflavor doctests to unittests. We have always...

[1.2.X] Converted Japanese localflavor doctests to unittests.  We have always been at war with doctests.  Thanks to Idan Gazit.  Backport of [14946].

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@14970 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent f2a8534d
Loading
Loading
Loading
Loading
+23 −56
Original line number Diff line number Diff line
# -*- coding: utf-8 -*-
# Tests for the contrib/localflavor/ JP form fields.
from django.contrib.localflavor.jp.forms import (JPPostalCodeField,
    JPPrefectureSelect)

tests = r"""
# JPPostalCodeField ###############################################################
from utils import LocalFlavorTestCase

A form field that validates its input is a Japanese postcode.

Accepts 7 digits(with/out hyphen).
>>> from django.contrib.localflavor.jp.forms import JPPostalCodeField
>>> f = JPPostalCodeField()
>>> f.clean('251-0032')
u'2510032'
>>> f.clean('2510032')
u'2510032'
>>> f.clean('2510-032')
Traceback (most recent call last):
...
ValidationError: [u'Enter a postal code in the format XXXXXXX or XXX-XXXX.']
>>> f.clean('251a0032')
Traceback (most recent call last):
...
ValidationError: [u'Enter a postal code in the format XXXXXXX or XXX-XXXX.']
>>> f.clean('a51-0032')
Traceback (most recent call last):
...
ValidationError: [u'Enter a postal code in the format XXXXXXX or XXX-XXXX.']
>>> f.clean('25100321')
Traceback (most recent call last):
...
ValidationError: [u'Enter a postal code in the format XXXXXXX or XXX-XXXX.']
>>> f.clean('')
Traceback (most recent call last):
...
ValidationError: [u'This field is required.']

>>> f = JPPostalCodeField(required=False)
>>> f.clean('251-0032')
u'2510032'
>>> f.clean('2510032')
u'2510032'
>>> f.clean('2510-032')
Traceback (most recent call last):
...
ValidationError: [u'Enter a postal code in the format XXXXXXX or XXX-XXXX.']
>>> f.clean('')
u''
>>> f.clean(None)
u''

# JPPrefectureSelect ###############################################################

A Select widget that uses a list of Japanese prefectures as its choices.
>>> from django.contrib.localflavor.jp.forms import JPPrefectureSelect
>>> w = JPPrefectureSelect()
>>> print w.render('prefecture', 'kanagawa')
<select name="prefecture">
class JPLocalFlavorTests(LocalFlavorTestCase):
    def test_JPPrefectureSelect(self):
        f = JPPrefectureSelect()
        out = u'''<select name="prefecture">
<option value="hokkaido">Hokkaido</option>
<option value="aomori">Aomori</option>
<option value="iwate">Iwate</option>
@@ -102,5 +55,19 @@ A Select widget that uses a list of Japanese prefectures as its choices.
<option value="miyazaki">Miyazaki</option>
<option value="kagoshima">Kagoshima</option>
<option value="okinawa">Okinawa</option>
</select>
"""
</select>'''
        self.assertEqual(f.render('prefecture', 'kanagawa'), out)

    def test_JPPostalCodeField(self):
        error_format = [u'Enter a postal code in the format XXXXXXX or XXX-XXXX.']
        valid = {
                '251-0032': '2510032',
                '2510032': '2510032',
        }
        invalid = {
                '2510-032': error_format,
                '251a0032': error_format,
                'a51-0032': error_format,
                '25100321': error_format,
        }
        self.assertFieldOutput(JPPostalCodeField, valid, invalid)
+1 −2
Original line number Diff line number Diff line
# -*- coding: utf-8 -*-
from localflavor.cz import tests as localflavor_cz_tests
from localflavor.jp import tests as localflavor_jp_tests
from localflavor.kw import tests as localflavor_kw_tests
from localflavor.nl import tests as localflavor_nl_tests
from localflavor.pl import tests as localflavor_pl_tests
@@ -30,11 +29,11 @@ from localflavor.id import IDLocalFlavorTests
from localflavor.ie import IELocalFlavorTests
from localflavor.is_ import ISLocalFlavorTests
from localflavor.it import ITLocalFlavorTests
from localflavor.jp import JPLocalFlavorTests


__test__ = {
    'localflavor_cz_tests': localflavor_cz_tests,
    'localflavor_jp_tests': localflavor_jp_tests,
    'localflavor_kw_tests': localflavor_kw_tests,
    'localflavor_nl_tests': localflavor_nl_tests,
    'localflavor_pl_tests': localflavor_pl_tests,
+1 −0
Original line number Diff line number Diff line
@@ -29,4 +29,5 @@ from regressiontests.forms.localflavortests import (
    IELocalFlavorTests,
    ISLocalFlavorTests,
    ITLocalFlavorTests,
    JPLocalFlavorTests,
)