File: tests.py

package info (click to toggle)
python-django-formfieldset 0%2Bgit20090520-621cb58-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd, squeeze, wheezy
  • size: 56 kB
  • ctags: 30
  • sloc: python: 215; makefile: 10
file content (55 lines) | stat: -rw-r--r-- 2,303 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
from django.test import TestCase
from django import forms as django_forms
import forms


class FieldsetRenderTestCase(TestCase):
    def _test_form(self):
        class TestForm(django_forms.Form, forms.FieldsetMixin):
            test_field1 = django_forms.CharField()
            test_field2 = django_forms.CharField()
            test_field3 = django_forms.CharField()

            fieldsets = (
                (u'Fieldset1', {
                    'description': u'Test Description',
                    'fields': ('test_field1',),
                }),
                (u'Fieldset2', {
                    'fields': ('test_field2', 'test_field3'),
                }),
            )

            def clean_test_field2(self):
                raise django_forms.ValidationError(
                                [u'Test Error - Field Level - 1',
                                 u'Test Error - Field Level - 2'])

            def clean(self):
                raise django_forms.ValidationError(u'Test Error - Top Level')
        return TestForm

    def testFieldsetRender(self):
        RESPONSE = u"""<toplevelerrors><ul class="errorlist"><li>Test Error - Top Level</li></ul></toplevelerrors>
<fieldset>
<name>Fieldset1</name><help>Test Description</help>
<row><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="test_field1" id="id_test_field1" /></row>
</fieldset>
<fieldset>
<name>Fieldset2</name>
<row><ul class="errorlist"><li>Test Error - Field Level - 1</li><li>Test Error - Field Level - 2</li></ul><input type="text" name="test_field2" value="Test Value" id="id_test_field2" /></row>
<row><ul class="errorlist"><li>This field is required.</li></ul><input type="text" name="test_field3" id="id_test_field3" /></row>
</fieldset>"""
        form = self._test_form()(data={'test_field2': u'Test Value'})
        self.assertEqual(form.is_valid(), False)
        self.assertEqual(
            form._html_fieldset_output(
                '<fieldset>\n<name>%(name)s</name>' \
                    '%(description)s\n%(fields)s\n</fieldset>',
                '<row>%(errors)s%(field)s%(help_text)s</row>',
                '<toplevelerrors>%s</toplevelerrors>',
                '',
                '<help>%s</help>',
                False),
            RESPONSE
        )