summaryrefslogtreecommitdiff
path: root/tests/regressiontests/forms/error_messages.py
diff options
context:
space:
mode:
authorLuke Plant <L.Plant.98@cantab.net>2009-09-11 10:47:40 +0000
committerLuke Plant <L.Plant.98@cantab.net>2009-09-11 10:47:40 +0000
commit7c53c2618d7dd9f04f309d195835e6abfc7e0e52 (patch)
treef1e89e78fffebd2e74b455a01004337eeebcafb4 /tests/regressiontests/forms/error_messages.py
parent4decf03f9ceb0162a7de757cdb3985100faf028b (diff)
Fixed #10968 - Form.errors should use Form.error_class.
Thanks for report and initial patch, matehat. git-svn-id: http://code.djangoproject.com/svn/django/trunk@11498 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/forms/error_messages.py')
-rw-r--r--tests/regressiontests/forms/error_messages.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/regressiontests/forms/error_messages.py b/tests/regressiontests/forms/error_messages.py
index ec91b57a06..b7224dbde0 100644
--- a/tests/regressiontests/forms/error_messages.py
+++ b/tests/regressiontests/forms/error_messages.py
@@ -358,4 +358,42 @@ ValidationError: [u'NOT A LIST OF VALUES']
Traceback (most recent call last):
...
ValidationError: [u'4 IS INVALID CHOICE']
+
+# Subclassing ErrorList #######################################################
+
+>>> from django.utils.safestring import mark_safe
+>>>
+>>> class TestForm(Form):
+... first_name = CharField()
+... last_name = CharField()
+... birthday = DateField()
+...
+... def clean(self):
+... raise ValidationError("I like to be awkward.")
+...
+>>> class CustomErrorList(util.ErrorList):
+... def __unicode__(self):
+... return self.as_divs()
+... def as_divs(self):
+... if not self: return u''
+... return mark_safe(u'<div class="error">%s</div>'
+... % ''.join([u'<p>%s</p>' % e for e in self]))
+...
+
+This form should print errors the default way.
+
+>>> form1 = TestForm({'first_name': 'John'})
+>>> print form1['last_name'].errors
+<ul class="errorlist"><li>This field is required.</li></ul>
+>>> print form1.errors['__all__']
+<ul class="errorlist"><li>I like to be awkward.</li></ul>
+
+This one should wrap error groups in the customized way.
+
+>>> form2 = TestForm({'first_name': 'John'}, error_class=CustomErrorList)
+>>> print form2['last_name'].errors
+<div class="error"><p>This field is required.</p></div>
+>>> print form2.errors['__all__']
+<div class="error"><p>I like to be awkward.</p></div>
+
"""