summaryrefslogtreecommitdiff
path: root/tests/forms_tests
diff options
context:
space:
mode:
authorDavid <smithdc@gmail.com>2021-12-22 13:44:16 +0000
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2021-12-23 07:38:05 +0100
commitcb82ded4b26f514c11349c9d13287bb3fb9268c9 (patch)
tree0d9e4940137b370c53120dd225e78b26e635286b /tests/forms_tests
parentfa4b2c15f27edf8d6b8c88b451e23824ddec928c (diff)
downloaddjango-cb82ded4b26f514c11349c9d13287bb3fb9268c9.tar.gz
Refs #32339 -- Added rendering tests for forms with CheckboxSelectMultiple and SelectMultiple widgets.
Diffstat (limited to 'tests/forms_tests')
-rw-r--r--tests/forms_tests/tests/test_forms.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/tests/forms_tests/tests/test_forms.py b/tests/forms_tests/tests/test_forms.py
index 7e0bdeeb77..a9d1f8b24c 100644
--- a/tests/forms_tests/tests/test_forms.py
+++ b/tests/forms_tests/tests/test_forms.py
@@ -791,6 +791,79 @@ Java</label></div>
<option value="J">John Lennon</option>
<option value="P" selected>Paul McCartney</option>
</select>""")
+ f = SongForm()
+ self.assertHTMLEqual(
+ f.as_table(),
+ '<tr><th><label for="id_name">Name:</label></th>'
+ '<td><input type="text" name="name" required id="id_name"></td>'
+ '</tr><tr><th><label for="id_composers">Composers:</label></th>'
+ '<td><select name="composers" required id="id_composers" multiple>'
+ '<option value="J">John Lennon</option>'
+ '<option value="P">Paul McCartney</option>'
+ '</select></td></tr>',
+ )
+ self.assertHTMLEqual(
+ f.as_ul(),
+ '<li><label for="id_name">Name:</label>'
+ '<input type="text" name="name" required id="id_name"></li>'
+ '<li><label for="id_composers">Composers:</label>'
+ '<select name="composers" required id="id_composers" multiple>'
+ '<option value="J">John Lennon</option>'
+ '<option value="P">Paul McCartney</option>'
+ '</select></li>',
+ )
+ self.assertHTMLEqual(
+ f.as_p(),
+ '<p><label for="id_name">Name:</label>'
+ '<input type="text" name="name" required id="id_name"></p>'
+ '<p><label for="id_composers">Composers:</label>'
+ '<select name="composers" required id="id_composers" multiple>'
+ '<option value="J">John Lennon</option>'
+ '<option value="P">Paul McCartney</option>'
+ '</select></p>',
+ )
+
+ def test_multiple_checkbox_render(self):
+ f = SongForm()
+ self.assertHTMLEqual(
+ f.as_table(),
+ '<tr><th><label for="id_name">Name:</label></th><td>'
+ '<input type="text" name="name" required id="id_name"></td></tr>'
+ '<tr><th><label>Composers:</label></th><td><div id="id_composers">'
+ '<div><label for="id_composers_0">'
+ '<input type="checkbox" name="composers" value="J" '
+ 'id="id_composers_0">John Lennon</label></div>'
+ '<div><label for="id_composers_1">'
+ '<input type="checkbox" name="composers" value="P" '
+ 'id="id_composers_1">Paul McCartney</label></div>'
+ '</div></td></tr>',
+ )
+ self.assertHTMLEqual(
+ f.as_ul(),
+ '<li><label for="id_name">Name:</label>'
+ '<input type="text" name="name" required id="id_name"></li>'
+ '<li><label>Composers:</label><div id="id_composers">'
+ '<div><label for="id_composers_0">'
+ '<input type="checkbox" name="composers" value="J" '
+ 'id="id_composers_0">John Lennon</label></div>'
+ '<div><label for="id_composers_1">'
+ '<input type="checkbox" name="composers" value="P" '
+ 'id="id_composers_1">Paul McCartney</label></div>'
+ '</div></li>',
+ )
+ self.assertHTMLEqual(
+ f.as_p(),
+ '<p><label for="id_name">Name:</label>'
+ '<input type="text" name="name" required id="id_name"></p>'
+ '<p><label>Composers:</label><div id="id_composers">'
+ '<div><label for="id_composers_0">'
+ '<input type="checkbox" name="composers" value="J" '
+ 'id="id_composers_0">John Lennon</label></div>'
+ '<div><label for="id_composers_1">'
+ '<input type="checkbox" name="composers" value="P" '
+ 'id="id_composers_1">Paul McCartney</label></div>'
+ '</div></p>',
+ )
def test_form_with_disabled_fields(self):
class PersonForm(Form):