diff options
| author | Joseph Kocherhans <joseph@jkocherhans.com> | 2007-10-26 20:21:10 +0000 |
|---|---|---|
| committer | Joseph Kocherhans <joseph@jkocherhans.com> | 2007-10-26 20:21:10 +0000 |
| commit | 1746760500a3232e7752626fc33deda7f6b74862 (patch) | |
| tree | a6fabb90eb3cff113f93757ca85bc8140ea85d59 /tests/regressiontests/forms | |
| parent | 11b6e1eeb788e8679a6d6d42944471aa3998819d (diff) | |
newforms-admin: Merged to [6612]
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@6613 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/forms')
| -rw-r--r-- | tests/regressiontests/forms/localflavor/pl.py | 30 | ||||
| -rw-r--r-- | tests/regressiontests/forms/models.py | 50 | ||||
| -rw-r--r-- | tests/regressiontests/forms/tests.py | 2 | ||||
| -rw-r--r-- | tests/regressiontests/forms/widgets.py | 23 |
4 files changed, 89 insertions, 16 deletions
diff --git a/tests/regressiontests/forms/localflavor/pl.py b/tests/regressiontests/forms/localflavor/pl.py index be8437208b..becdda8a1d 100644 --- a/tests/regressiontests/forms/localflavor/pl.py +++ b/tests/regressiontests/forms/localflavor/pl.py @@ -35,11 +35,15 @@ u'41-403' Traceback (most recent call last): ... ValidationError: [u'Enter a tax number field (NIP) in the format XXX-XXX-XX-XX or XX-XX-XXX-XXX.'] ->>> f.clean('43-34-234-323') -u'43-34-234-323' ->>> f.clean('433-344-24-23') -u'433-344-24-23' - +>>> f.clean('64-62-414-124') +u'6462414124' +>>> f.clean('646-241-41-24') +u'6462414124' +>>> f.clean('646-241-41-23') +Traceback (most recent call last): +... +ValidationError: [u'Wrong checksum for the Tax Number (NIP).'] + # PLNationalIdentificationNumberField ############################################ >>> from django.contrib.localflavor.pl.forms import PLNationalIdentificationNumberField @@ -58,4 +62,20 @@ ValidationError: [u'National Identification Number consists of 11 digits.'] Traceback (most recent call last): ... ValidationError: [u'National Identification Number consists of 11 digits.'] + +# PLNationalBusinessRegisterField ################################################ + +>>> from django.contrib.localflavor.pl.forms import PLNationalBusinessRegisterField +>>> f = PLNationalBusinessRegisterField() +>>> f.clean('590096454') +u'590096454' +>>> f.clean('590096453') +Traceback (most recent call last): +... +ValidationError: [u'Wrong checksum for the National Business Register Number (REGON).'] +>>> f.clean('590096') +Traceback (most recent call last): +... +ValidationError: [u'National Business Register Number (REGON) consists of 7 or 9 digits.'] + """ diff --git a/tests/regressiontests/forms/models.py b/tests/regressiontests/forms/models.py index f4f8607193..1a6f566b6b 100644 --- a/tests/regressiontests/forms/models.py +++ b/tests/regressiontests/forms/models.py @@ -1,21 +1,49 @@ +import datetime + from django.db import models -class BoundaryModel(models.Model): +class BoundaryModel(models.Model): positive_integer = models.PositiveIntegerField(null=True, blank=True) - + +class Defaults(models.Model): + name = models.CharField(max_length=256, default='class default value') + def_date = models.DateField(default = datetime.date(1980, 1, 1)) + value = models.IntegerField(default=42) + __test__ = {'API_TESTS': """ ->>> from django.newforms import form_for_model +>>> from django.newforms import form_for_model, form_for_instance # Boundary conditions on a PostitiveIntegerField ######################### ->>> BoundaryForm = form_for_model(BoundaryModel) ->>> f = BoundaryForm({'positive_integer':100}) ->>> f.is_valid() +>>> BoundaryForm = form_for_model(BoundaryModel) +>>> f = BoundaryForm({'positive_integer':100}) +>>> f.is_valid() True ->>> f = BoundaryForm({'positive_integer':0}) ->>> f.is_valid() +>>> f = BoundaryForm({'positive_integer':0}) +>>> f.is_valid() True ->>> f = BoundaryForm({'positive_integer':-100}) ->>> f.is_valid() +>>> f = BoundaryForm({'positive_integer':-100}) +>>> f.is_valid() False -"""}
\ No newline at end of file +# Formfield initial values ######## +If the model has default values for some fields, they are used as the formfield +initial values. +>>> DefaultsForm = form_for_model(Defaults) +>>> DefaultsForm().fields['name'].initial +u'class default value' +>>> DefaultsForm().fields['def_date'].initial +datetime.date(1980, 1, 1) +>>> DefaultsForm().fields['value'].initial +42 + +In form_for_instance(), the initial values come from the instance's values, not +the model's defaults. +>>> foo_instance = Defaults(name=u'instance value', def_date = datetime.date(1969, 4, 4), value = 12) +>>> InstanceForm = form_for_instance(foo_instance) +>>> InstanceForm().fields['name'].initial +u'instance value' +>>> InstanceForm().fields['def_date'].initial +datetime.date(1969, 4, 4) +>>> InstanceForm().fields['value'].initial +12 +"""} diff --git a/tests/regressiontests/forms/tests.py b/tests/regressiontests/forms/tests.py index 49f03da798..e90d6d2510 100644 --- a/tests/regressiontests/forms/tests.py +++ b/tests/regressiontests/forms/tests.py @@ -9,6 +9,7 @@ from localflavor.ca import tests as localflavor_ca_tests from localflavor.ch import tests as localflavor_ch_tests from localflavor.cl import tests as localflavor_cl_tests from localflavor.de import tests as localflavor_de_tests +from localflavor.es import tests as localflavor_es_tests from localflavor.fi import tests as localflavor_fi_tests from localflavor.fr import tests as localflavor_fr_tests from localflavor.generic import tests as localflavor_generic_tests @@ -37,6 +38,7 @@ __test__ = { 'localflavor_ch_tests': localflavor_ch_tests, 'localflavor_cl_tests': localflavor_cl_tests, 'localflavor_de_tests': localflavor_de_tests, + 'localflavor_es_tests': localflavor_es_tests, 'localflavor_fi_tests': localflavor_fi_tests, 'localflavor_fr_tests': localflavor_fr_tests, 'localflavor_generic_tests': localflavor_generic_tests, diff --git a/tests/regressiontests/forms/widgets.py b/tests/regressiontests/forms/widgets.py index 1c3e873963..cb1d084631 100644 --- a/tests/regressiontests/forms/widgets.py +++ b/tests/regressiontests/forms/widgets.py @@ -276,6 +276,12 @@ u'<input type="checkbox" name="greeting" />' >>> w.render('greeting', None) u'<input type="checkbox" name="greeting" />' +The CheckboxInput widget will return False if the key is not found in the data +dictionary (because HTML form submission doesn't send any result for unchecked +checkboxes). +>>> w.value_from_datadict({}, {}, 'testing') +False + # Select Widget ############################################################### >>> w = Select() @@ -845,4 +851,21 @@ included on both widgets. >>> w = SplitDateTimeWidget(attrs={'class': 'pretty'}) >>> w.render('date', datetime.datetime(2006, 1, 10, 7, 30)) u'<input type="text" class="pretty" value="2006-01-10" name="date_0" /><input type="text" class="pretty" value="07:30:00" name="date_1" />' + +# DateTimeInput ############################################################### + +>>> w = DateTimeInput() +>>> w.render('date', None) +u'<input type="text" name="date" />' +>>> d = datetime.datetime(2007, 9, 17, 12, 51, 34, 482548) +>>> print d +2007-09-17 12:51:34.482548 + +The microseconds are trimmed on display, by default. +>>> w.render('date', d) +u'<input type="text" name="date" value="2007-09-17 12:51:34" />' +>>> w.render('date', datetime.datetime(2007, 9, 17, 12, 51, 34)) +u'<input type="text" name="date" value="2007-09-17 12:51:34" />' +>>> w.render('date', datetime.datetime(2007, 9, 17, 12, 51)) +u'<input type="text" name="date" value="2007-09-17 12:51:00" />' """ |
