mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
Fixed #11251 -- Extended Australian localflavor to ship a few model fields additionally. Thanks, Simon Meers and Julien Phalip.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16066 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
0
tests/regressiontests/localflavor/au/__init__.py
Normal file
0
tests/regressiontests/localflavor/au/__init__.py
Normal file
7
tests/regressiontests/localflavor/au/forms.py
Normal file
7
tests/regressiontests/localflavor/au/forms.py
Normal file
@@ -0,0 +1,7 @@
|
||||
from django.forms import ModelForm
|
||||
from models import AustralianPlace
|
||||
|
||||
class AustralianPlaceForm(ModelForm):
|
||||
""" Form for storing an Australian place. """
|
||||
class Meta:
|
||||
model = AustralianPlace
|
||||
14
tests/regressiontests/localflavor/au/models.py
Normal file
14
tests/regressiontests/localflavor/au/models.py
Normal file
@@ -0,0 +1,14 @@
|
||||
from django.db import models
|
||||
from django.contrib.localflavor.au.models import AUStateField, AUPostCodeField
|
||||
|
||||
class AustralianPlace(models.Model):
|
||||
state = AUStateField(blank=True)
|
||||
state_required = AUStateField()
|
||||
state_default = AUStateField(default="NSW", blank=True)
|
||||
postcode = AUPostCodeField(blank=True)
|
||||
postcode_required = AUPostCodeField()
|
||||
postcode_default = AUPostCodeField(default="2500", blank=True)
|
||||
name = models.CharField(max_length=20)
|
||||
|
||||
class Meta:
|
||||
app_label = 'localflavor'
|
||||
58
tests/regressiontests/localflavor/au/tests.py
Normal file
58
tests/regressiontests/localflavor/au/tests.py
Normal file
@@ -0,0 +1,58 @@
|
||||
import re
|
||||
|
||||
from django.test import TestCase
|
||||
from forms import AustralianPlaceForm
|
||||
|
||||
SELECTED_OPTION_PATTERN = r'<option value="%s" selected="selected">'
|
||||
BLANK_OPTION_PATTERN = r'<option value="">'
|
||||
INPUT_VALUE_PATTERN = r'<input[^>]*value="%s"[^>]*>'
|
||||
|
||||
|
||||
class AULocalflavorTests(TestCase):
|
||||
def setUp(self):
|
||||
self.form = AustralianPlaceForm(
|
||||
{'state':'WA',
|
||||
'state_required':'QLD',
|
||||
'name':'dummy',
|
||||
'postcode':'1234',
|
||||
'postcode_required':'4321',
|
||||
})
|
||||
|
||||
def test_get_display_methods(self):
|
||||
""" Ensure get_*_display() methods are added to model instances. """
|
||||
place = self.form.save()
|
||||
self.assertEqual(place.get_state_display(), 'Western Australia')
|
||||
self.assertEqual(place.get_state_required_display(), 'Queensland')
|
||||
|
||||
def test_default_values(self):
|
||||
""" Ensure that default values are selected in forms. """
|
||||
form = AustralianPlaceForm()
|
||||
self.assertTrue(re.search(SELECTED_OPTION_PATTERN % 'NSW',
|
||||
str(form['state_default'])))
|
||||
self.assertTrue(re.search(INPUT_VALUE_PATTERN % '2500',
|
||||
str(form['postcode_default'])))
|
||||
|
||||
def test_required(self):
|
||||
""" Test that required AUStateFields throw appropriate errors. """
|
||||
form = AustralianPlaceForm({'state':'NSW', 'name':'Wollongong'})
|
||||
self.assertFalse(form.is_valid())
|
||||
self.assertEqual(
|
||||
form.errors['state_required'], [u'This field is required.'])
|
||||
self.assertEqual(
|
||||
form.errors['postcode_required'], [u'This field is required.'])
|
||||
|
||||
def test_field_blank_option(self):
|
||||
""" Test that the empty option is there. """
|
||||
self.assertTrue(re.search(BLANK_OPTION_PATTERN,
|
||||
str(self.form['state'])))
|
||||
|
||||
def test_selected_values(self):
|
||||
""" Ensure selected states match the initial values provided. """
|
||||
self.assertTrue(re.search(SELECTED_OPTION_PATTERN % 'WA',
|
||||
str(self.form['state'])))
|
||||
self.assertTrue(re.search(SELECTED_OPTION_PATTERN % 'QLD',
|
||||
str(self.form['state_required'])))
|
||||
self.assertTrue(re.search(INPUT_VALUE_PATTERN % '1234',
|
||||
str(self.form['postcode'])))
|
||||
self.assertTrue(re.search(INPUT_VALUE_PATTERN % '4321',
|
||||
str(self.form['postcode_required'])))
|
||||
@@ -3,3 +3,4 @@ from django.utils import unittest
|
||||
|
||||
# just import your tests here
|
||||
from us.tests import *
|
||||
from au.tests import *
|
||||
|
||||
Reference in New Issue
Block a user