From ec5659382a5f5fc2daf0c87ccc89d0fb07534874 Mon Sep 17 00:00:00 2001 From: David Smith Date: Thu, 5 May 2022 09:21:47 +0200 Subject: Fixed #32339 -- Added div.html form template. --- tests/forms_tests/tests/test_forms.py | 184 +++++++++++++++++++++++++++++++ tests/forms_tests/tests/test_formsets.py | 12 ++ 2 files changed, 196 insertions(+) (limited to 'tests/forms_tests') diff --git a/tests/forms_tests/tests/test_forms.py b/tests/forms_tests/tests/test_forms.py index ad8f7b9a31..e6e396c8a1 100644 --- a/tests/forms_tests/tests/test_forms.py +++ b/tests/forms_tests/tests/test_forms.py @@ -161,6 +161,15 @@ class FormsTestCase(SimpleTestCase): required> """, ) + self.assertHTMLEqual( + p.as_div(), + '
' + '
' + '
', + ) def test_empty_dict(self): # Empty dictionaries are valid, too. @@ -219,6 +228,18 @@ class FormsTestCase(SimpleTestCase):

""", ) + self.assertHTMLEqual( + p.as_div(), + '
' + '' + '
' + '
' + '' + '
' + '' + '' + '
', + ) def test_empty_querydict_args(self): data = QueryDict() @@ -274,6 +295,15 @@ class FormsTestCase(SimpleTestCase):

""", ) + self.assertHTMLEqual( + p.as_div(), + '
", + ) def test_unicode_values(self): # Unicode values are handled properly. @@ -323,6 +353,17 @@ class FormsTestCase(SimpleTestCase): '

", ) + self.assertHTMLEqual( + p.as_div(), + '
' + '
' + '
', + ) p = Person({"last_name": "Lennon"}) self.assertEqual(p.errors["first_name"], ["This field is required."]) @@ -439,6 +480,15 @@ class FormsTestCase(SimpleTestCase):

""", ) + self.assertHTMLEqual( + p.as_div(), + '
', + ) def test_auto_id_true(self): # If auto_id is any True value whose str() does not contain '%s', the "id" @@ -746,6 +796,15 @@ class FormsTestCase(SimpleTestCase):
""", ) + # Need an auto_id to generate legend. + self.assertHTMLEqual( + f.render(f.template_name_div), + '
Name:
' + 'Language:
' + "
", + ) # Regarding auto_id and ' "

", ) + self.assertHTMLEqual( + f.render(f.template_name_div), + '
Composers:' + '
", + ) def test_form_with_disabled_fields(self): class PersonForm(Form): @@ -1492,6 +1579,14 @@ class FormsTestCase(SimpleTestCase):
  • Password2:
  • """, ) + self.assertHTMLEqual( + f.render(f.template_name_div), + '
    Username:
    Password1:
    Password2:
    ', + ) f = UserRegistration( {"username": "adrian", "password1": "foo", "password2": "foo"}, @@ -1649,6 +1744,12 @@ class FormsTestCase(SimpleTestCase): "
  • (Hidden field hidden_input) This field is required.
  • " '

    ', ) + self.assertHTMLEqual( + f.render(f.template_name_div), + '" + '
    ', + ) def test_dynamic_construction(self): # It's possible to construct a Form dynamically by adding to the self.fields @@ -1893,6 +1994,13 @@ class FormsTestCase(SimpleTestCase):

    """, ) + self.assertHTMLEqual( + p.as_div(), + '
    First name:
    ' + '
    Last name:
    ' + 'Birthday:
    ', + ) # With auto_id set, a HiddenInput still gets an ID, but it doesn't get a label. p = Person(auto_id="id_%s") @@ -1926,6 +2034,15 @@ class FormsTestCase(SimpleTestCase):

    """, ) + self.assertHTMLEqual( + p.as_div(), + '
    ' + '
    ', + ) # If a field with a HiddenInput has errors, the as_table() and as_ul() output # will include the error message(s) with the text "(Hidden field [fieldname]) " @@ -1976,6 +2093,15 @@ class FormsTestCase(SimpleTestCase):

    """, ) + self.assertHTMLEqual( + p.as_div(), + '
    First name:
    Last name:
    ' + 'Birthday: ' + '
    ', + ) # A corner case: It's possible for a form to have only HiddenInputs. class TestForm(Form): @@ -2811,6 +2937,13 @@ Options: ' + '
    Password:
    Wählen Sie mit Bedacht.
    ' + '
    ', + ) # The help text is displayed whether or not data is provided for the form. p = UserRegistration({"username": "foo"}, auto_id=False) @@ -3431,6 +3564,21 @@ Password: """, ) + self.assertHTMLEqual( + p.as_div(), + '
    ' + '
    ' + '
    ' + '
    ' + '
    ' + '
    ', + ) def test_label_has_required_css_class(self): """ @@ -4027,6 +4175,13 @@ Password: """, ) + self.assertHTMLEqual( + p.as_div(), + '
    ' + '
    ', + ) def test_error_list_with_non_field_errors_has_correct_class(self): class Person(Form): @@ -4076,6 +4231,15 @@ Password: """, ) + self.assertHTMLEqual( + p.as_div(), + '' + '
    ' + '
    ' + "
    ", + ) def test_error_escaping(self): class TestForm(Form): @@ -4271,6 +4435,16 @@ Password: '' "", ) + self.assertHTMLEqual( + form.render(form.template_name_div), + '
    ' + '
    ' + '
    ', + ) def test_use_required_attribute_false(self): class MyForm(Form): @@ -4322,6 +4496,16 @@ Password: '' "", ) + self.assertHTMLEqual( + form.render(form.template_name_div), + '
    ' + '
    ' + '
    ' + '
    ', + ) def test_only_hidden_fields(self): # A form with *only* hidden fields that has errors is going to be very unusual. diff --git a/tests/forms_tests/tests/test_formsets.py b/tests/forms_tests/tests/test_formsets.py index afa7a8a33d..c713c85bfb 100644 --- a/tests/forms_tests/tests/test_formsets.py +++ b/tests/forms_tests/tests/test_formsets.py @@ -1597,6 +1597,18 @@ class FormsetAsTagTests(SimpleTestCase): ), ) + def test_as_div(self): + self.assertHTMLEqual( + self.formset.as_div(), + self.management_form_html + + ( + "
    Choice: " + '
    ' + '
    Votes: ' + "
    " + ), + ) + @jinja2_tests class Jinja2FormsetAsTagTests(FormsetAsTagTests): -- cgit v1.3