summaryrefslogtreecommitdiff
path: root/tests/forms_tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests/forms_tests')
-rw-r--r--tests/forms_tests/field_tests/test_charfield.py2
-rw-r--r--tests/forms_tests/field_tests/test_datefield.py2
-rw-r--r--tests/forms_tests/field_tests/test_decimalfield.py8
-rw-r--r--tests/forms_tests/field_tests/test_emailfield.py4
-rw-r--r--tests/forms_tests/field_tests/test_floatfield.py8
-rw-r--r--tests/forms_tests/field_tests/test_integerfield.py10
-rw-r--r--tests/forms_tests/field_tests/test_multivaluefield.py12
-rw-r--r--tests/forms_tests/field_tests/test_nullbooleanfield.py4
-rw-r--r--tests/forms_tests/field_tests/test_urlfield.py4
-rw-r--r--tests/forms_tests/tests/test_forms.py844
-rw-r--r--tests/forms_tests/tests/test_formsets.py206
-rw-r--r--tests/forms_tests/tests/test_i18n.py18
-rw-r--r--tests/forms_tests/tests/test_media.py112
-rw-r--r--tests/forms_tests/tests/tests.py30
-rw-r--r--tests/forms_tests/widget_tests/test_checkboxinput.py22
-rw-r--r--tests/forms_tests/widget_tests/test_checkboxselectmultiple.py66
-rw-r--r--tests/forms_tests/widget_tests/test_clearablefileinput.py26
-rw-r--r--tests/forms_tests/widget_tests/test_dateinput.py12
-rw-r--r--tests/forms_tests/widget_tests/test_datetimeinput.py16
-rw-r--r--tests/forms_tests/widget_tests/test_fileinput.py6
-rw-r--r--tests/forms_tests/widget_tests/test_hiddeninput.py2
-rw-r--r--tests/forms_tests/widget_tests/test_input.py6
-rw-r--r--tests/forms_tests/widget_tests/test_multiplehiddeninput.py26
-rw-r--r--tests/forms_tests/widget_tests/test_multiwidget.py34
-rw-r--r--tests/forms_tests/widget_tests/test_numberinput.py2
-rw-r--r--tests/forms_tests/widget_tests/test_passwordinput.py10
-rw-r--r--tests/forms_tests/widget_tests/test_radioselect.py54
-rw-r--r--tests/forms_tests/widget_tests/test_splitdatetimewidget.py24
-rw-r--r--tests/forms_tests/widget_tests/test_splithiddendatetimewidget.py22
-rw-r--r--tests/forms_tests/widget_tests/test_textinput.py24
-rw-r--r--tests/forms_tests/widget_tests/test_timeinput.py14
-rw-r--r--tests/forms_tests/widget_tests/test_widget.py4
32 files changed, 817 insertions, 817 deletions
diff --git a/tests/forms_tests/field_tests/test_charfield.py b/tests/forms_tests/field_tests/test_charfield.py
index ad91070571..cbacf4d0d7 100644
--- a/tests/forms_tests/field_tests/test_charfield.py
+++ b/tests/forms_tests/field_tests/test_charfield.py
@@ -145,7 +145,7 @@ class CharFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
def test_charfield_disabled(self):
f = CharField(disabled=True)
- self.assertWidgetRendersTo(f, '<input type="text" name="f" id="id_f" disabled required />')
+ self.assertWidgetRendersTo(f, '<input type="text" name="f" id="id_f" disabled required>')
def test_null_characters_prohibited(self):
f = CharField()
diff --git a/tests/forms_tests/field_tests/test_datefield.py b/tests/forms_tests/field_tests/test_datefield.py
index a8002d463c..bcc7db193a 100644
--- a/tests/forms_tests/field_tests/test_datefield.py
+++ b/tests/forms_tests/field_tests/test_datefield.py
@@ -22,7 +22,7 @@ class DateFieldTest(SimpleTestCase):
# accept the input from the "as_hidden" rendering as well.
self.assertHTMLEqual(
a['mydate'].as_hidden(),
- '<input type="hidden" name="mydate" value="2008-4-1" id="id_mydate" />',
+ '<input type="hidden" name="mydate" value="2008-4-1" id="id_mydate">',
)
b = GetDate({'mydate': '2008-4-1'})
diff --git a/tests/forms_tests/field_tests/test_decimalfield.py b/tests/forms_tests/field_tests/test_decimalfield.py
index 4e1828d53d..44ebebcf75 100644
--- a/tests/forms_tests/field_tests/test_decimalfield.py
+++ b/tests/forms_tests/field_tests/test_decimalfield.py
@@ -11,7 +11,7 @@ class DecimalFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
def test_decimalfield_1(self):
f = DecimalField(max_digits=4, decimal_places=2)
- self.assertWidgetRendersTo(f, '<input id="id_f" step="0.01" type="number" name="f" required />')
+ self.assertWidgetRendersTo(f, '<input id="id_f" step="0.01" type="number" name="f" required>')
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
f.clean('')
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
@@ -78,7 +78,7 @@ class DecimalFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
)
self.assertWidgetRendersTo(
f,
- '<input step="0.01" name="f" min="0.5" max="1.5" type="number" id="id_f" required />',
+ '<input step="0.01" name="f" min="0.5" max="1.5" type="number" id="id_f" required>',
)
with self.assertRaisesMessage(ValidationError, "'Ensure this value is less than or equal to 1.5.'"):
f.clean('1.6')
@@ -136,7 +136,7 @@ class DecimalFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
f = DecimalField(max_digits=20)
self.assertEqual(f.widget_attrs(NumberInput()), {'step': 'any'})
f = DecimalField(max_digits=6, widget=NumberInput(attrs={'step': '0.01'}))
- self.assertWidgetRendersTo(f, '<input step="0.01" name="f" type="number" id="id_f" required />')
+ self.assertWidgetRendersTo(f, '<input step="0.01" name="f" type="number" id="id_f" required>')
def test_decimalfield_localized(self):
"""
@@ -144,7 +144,7 @@ class DecimalFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
number input specific attributes.
"""
f = DecimalField(localize=True)
- self.assertWidgetRendersTo(f, '<input id="id_f" name="f" type="text" required />')
+ self.assertWidgetRendersTo(f, '<input id="id_f" name="f" type="text" required>')
def test_decimalfield_changed(self):
f = DecimalField(max_digits=2, decimal_places=2)
diff --git a/tests/forms_tests/field_tests/test_emailfield.py b/tests/forms_tests/field_tests/test_emailfield.py
index 15481689b0..826524ae62 100644
--- a/tests/forms_tests/field_tests/test_emailfield.py
+++ b/tests/forms_tests/field_tests/test_emailfield.py
@@ -8,7 +8,7 @@ class EmailFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
def test_emailfield_1(self):
f = EmailField()
- self.assertWidgetRendersTo(f, '<input type="email" name="f" id="id_f" required />')
+ self.assertWidgetRendersTo(f, '<input type="email" name="f" id="id_f" required>')
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
f.clean('')
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
@@ -41,7 +41,7 @@ class EmailFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
f = EmailField(min_length=10, max_length=15)
self.assertWidgetRendersTo(
f,
- '<input id="id_f" type="email" name="f" maxlength="15" minlength="10" required />',
+ '<input id="id_f" type="email" name="f" maxlength="15" minlength="10" required>',
)
with self.assertRaisesMessage(ValidationError, "'Ensure this value has at least 10 characters (it has 9).'"):
f.clean('a@foo.com')
diff --git a/tests/forms_tests/field_tests/test_floatfield.py b/tests/forms_tests/field_tests/test_floatfield.py
index b36942afa4..531396868a 100644
--- a/tests/forms_tests/field_tests/test_floatfield.py
+++ b/tests/forms_tests/field_tests/test_floatfield.py
@@ -10,7 +10,7 @@ class FloatFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
def test_floatfield_1(self):
f = FloatField()
- self.assertWidgetRendersTo(f, '<input step="any" type="number" name="f" id="id_f" required />')
+ self.assertWidgetRendersTo(f, '<input step="any" type="number" name="f" id="id_f" required>')
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
f.clean('')
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
@@ -49,7 +49,7 @@ class FloatFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
f = FloatField(max_value=1.5, min_value=0.5)
self.assertWidgetRendersTo(
f,
- '<input step="any" name="f" min="0.5" max="1.5" type="number" id="id_f" required />',
+ '<input step="any" name="f" min="0.5" max="1.5" type="number" id="id_f" required>',
)
with self.assertRaisesMessage(ValidationError, "'Ensure this value is less than or equal to 1.5.'"):
f.clean('1.6')
@@ -64,7 +64,7 @@ class FloatFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
f = FloatField(widget=NumberInput(attrs={'step': 0.01, 'max': 1.0, 'min': 0.0}))
self.assertWidgetRendersTo(
f,
- '<input step="0.01" name="f" min="0.0" max="1.0" type="number" id="id_f" required />',
+ '<input step="0.01" name="f" min="0.0" max="1.0" type="number" id="id_f" required>',
)
def test_floatfield_localized(self):
@@ -73,7 +73,7 @@ class FloatFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
number input specific attributes.
"""
f = FloatField(localize=True)
- self.assertWidgetRendersTo(f, '<input id="id_f" name="f" type="text" required />')
+ self.assertWidgetRendersTo(f, '<input id="id_f" name="f" type="text" required>')
def test_floatfield_changed(self):
f = FloatField()
diff --git a/tests/forms_tests/field_tests/test_integerfield.py b/tests/forms_tests/field_tests/test_integerfield.py
index f89885027b..a0cde40910 100644
--- a/tests/forms_tests/field_tests/test_integerfield.py
+++ b/tests/forms_tests/field_tests/test_integerfield.py
@@ -8,7 +8,7 @@ class IntegerFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
def test_integerfield_1(self):
f = IntegerField()
- self.assertWidgetRendersTo(f, '<input type="number" name="f" id="id_f" required />')
+ self.assertWidgetRendersTo(f, '<input type="number" name="f" id="id_f" required>')
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
f.clean('')
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
@@ -50,7 +50,7 @@ class IntegerFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
def test_integerfield_3(self):
f = IntegerField(max_value=10)
- self.assertWidgetRendersTo(f, '<input max="10" type="number" name="f" id="id_f" required />')
+ self.assertWidgetRendersTo(f, '<input max="10" type="number" name="f" id="id_f" required>')
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
f.clean(None)
self.assertEqual(1, f.clean(1))
@@ -65,7 +65,7 @@ class IntegerFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
def test_integerfield_4(self):
f = IntegerField(min_value=10)
- self.assertWidgetRendersTo(f, '<input id="id_f" type="number" name="f" min="10" required />')
+ self.assertWidgetRendersTo(f, '<input id="id_f" type="number" name="f" min="10" required>')
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
f.clean(None)
with self.assertRaisesMessage(ValidationError, "'Ensure this value is greater than or equal to 10.'"):
@@ -79,7 +79,7 @@ class IntegerFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
def test_integerfield_5(self):
f = IntegerField(min_value=10, max_value=20)
- self.assertWidgetRendersTo(f, '<input id="id_f" max="20" type="number" name="f" min="10" required />')
+ self.assertWidgetRendersTo(f, '<input id="id_f" max="20" type="number" name="f" min="10" required>')
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
f.clean(None)
with self.assertRaisesMessage(ValidationError, "'Ensure this value is greater than or equal to 10.'"):
@@ -100,7 +100,7 @@ class IntegerFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
number input specific attributes.
"""
f1 = IntegerField(localize=True)
- self.assertWidgetRendersTo(f1, '<input id="id_f" name="f" type="text" required />')
+ self.assertWidgetRendersTo(f1, '<input id="id_f" name="f" type="text" required>')
def test_integerfield_float(self):
f = IntegerField()
diff --git a/tests/forms_tests/field_tests/test_multivaluefield.py b/tests/forms_tests/field_tests/test_multivaluefield.py
index edb32957e3..fb99451f6c 100644
--- a/tests/forms_tests/field_tests/test_multivaluefield.py
+++ b/tests/forms_tests/field_tests/test_multivaluefield.py
@@ -128,15 +128,15 @@ class MultiValueFieldTest(SimpleTestCase):
form.as_table(),
"""
<tr><th><label for="id_field1_0">Field1:</label></th>
- <td><input type="text" name="field1_0" id="id_field1_0" required />
+ <td><input type="text" name="field1_0" id="id_field1_0" required>
<select multiple name="field1_1" id="id_field1_1" required>
<option value="J">John</option>
<option value="P">Paul</option>
<option value="G">George</option>
<option value="R">Ringo</option>
</select>
- <input type="text" name="field1_2_0" id="id_field1_2_0" required />
- <input type="text" name="field1_2_1" id="id_field1_2_1" required /></td></tr>
+ <input type="text" name="field1_2_0" id="id_field1_2_0" required>
+ <input type="text" name="field1_2_1" id="id_field1_2_1" required></td></tr>
""",
)
@@ -151,15 +151,15 @@ class MultiValueFieldTest(SimpleTestCase):
form.as_table(),
"""
<tr><th><label for="id_field1_0">Field1:</label></th>
- <td><input type="text" name="field1_0" value="some text" id="id_field1_0" required />
+ <td><input type="text" name="field1_0" value="some text" id="id_field1_0" required>
<select multiple name="field1_1" id="id_field1_1" required>
<option value="J" selected>John</option>
<option value="P" selected>Paul</option>
<option value="G">George</option>
<option value="R">Ringo</option>
</select>
- <input type="text" name="field1_2_0" value="2007-04-25" id="id_field1_2_0" required />
- <input type="text" name="field1_2_1" value="06:24:00" id="id_field1_2_1" required /></td></tr>
+ <input type="text" name="field1_2_0" value="2007-04-25" id="id_field1_2_0" required>
+ <input type="text" name="field1_2_1" value="06:24:00" id="id_field1_2_1" required></td></tr>
""",
)
diff --git a/tests/forms_tests/field_tests/test_nullbooleanfield.py b/tests/forms_tests/field_tests/test_nullbooleanfield.py
index ff57394f07..55812612c9 100644
--- a/tests/forms_tests/field_tests/test_nullbooleanfield.py
+++ b/tests/forms_tests/field_tests/test_nullbooleanfield.py
@@ -27,8 +27,8 @@ class NullBooleanFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
hidden_nullbool2 = NullBooleanField(widget=HiddenInput, initial=False)
f = HiddenNullBooleanForm()
self.assertHTMLEqual(
- '<input type="hidden" name="hidden_nullbool1" value="True" id="id_hidden_nullbool1" />'
- '<input type="hidden" name="hidden_nullbool2" value="False" id="id_hidden_nullbool2" />',
+ '<input type="hidden" name="hidden_nullbool1" value="True" id="id_hidden_nullbool1">'
+ '<input type="hidden" name="hidden_nullbool2" value="False" id="id_hidden_nullbool2">',
str(f)
)
diff --git a/tests/forms_tests/field_tests/test_urlfield.py b/tests/forms_tests/field_tests/test_urlfield.py
index 2ecf189112..52f1080cdc 100644
--- a/tests/forms_tests/field_tests/test_urlfield.py
+++ b/tests/forms_tests/field_tests/test_urlfield.py
@@ -8,7 +8,7 @@ class URLFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
def test_urlfield_1(self):
f = URLField()
- self.assertWidgetRendersTo(f, '<input type="url" name="f" id="id_f" required />')
+ self.assertWidgetRendersTo(f, '<input type="url" name="f" id="id_f" required>')
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
f.clean('')
with self.assertRaisesMessage(ValidationError, "'This field is required.'"):
@@ -88,7 +88,7 @@ class URLFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
def test_urlfield_5(self):
f = URLField(min_length=15, max_length=20)
- self.assertWidgetRendersTo(f, '<input id="id_f" type="url" name="f" maxlength="20" minlength="15" required />')
+ self.assertWidgetRendersTo(f, '<input id="id_f" type="url" name="f" maxlength="20" minlength="15" required>')
with self.assertRaisesMessage(ValidationError, "'Ensure this value has at least 15 characters (it has 12).'"):
f.clean('http://f.com')
self.assertEqual('http://example.com', f.clean('http://example.com'))
diff --git a/tests/forms_tests/tests/test_forms.py b/tests/forms_tests/tests/test_forms.py
index 4ec21f869e..1f883e1a28 100644
--- a/tests/forms_tests/tests/test_forms.py
+++ b/tests/forms_tests/tests/test_forms.py
@@ -59,15 +59,15 @@ class FormsTestCase(SimpleTestCase):
self.assertEqual(p.cleaned_data["birthday"], datetime.date(1940, 10, 9))
self.assertHTMLEqual(
str(p['first_name']),
- '<input type="text" name="first_name" value="John" id="id_first_name" required />'
+ '<input type="text" name="first_name" value="John" id="id_first_name" required>'
)
self.assertHTMLEqual(
str(p['last_name']),
- '<input type="text" name="last_name" value="Lennon" id="id_last_name" required />'
+ '<input type="text" name="last_name" value="Lennon" id="id_last_name" required>'
)
self.assertHTMLEqual(
str(p['birthday']),
- '<input type="text" name="birthday" value="1940-10-9" id="id_birthday" required />'
+ '<input type="text" name="birthday" value="1940-10-9" id="id_birthday" required>'
)
msg = "Key 'nonexistentfield' not found in 'Person'. Choices are: birthday, first_name, last_name."
@@ -81,9 +81,9 @@ class FormsTestCase(SimpleTestCase):
self.assertHTMLEqual(
'\n'.join(form_output),
- """<input type="text" name="first_name" value="John" id="id_first_name" required />
-<input type="text" name="last_name" value="Lennon" id="id_last_name" required />
-<input type="text" name="birthday" value="1940-10-9" id="id_birthday" required />"""
+ """<input type="text" name="first_name" value="John" id="id_first_name" required>
+<input type="text" name="last_name" value="Lennon" id="id_last_name" required>
+<input type="text" name="birthday" value="1940-10-9" id="id_birthday" required>"""
)
form_output = []
@@ -99,11 +99,11 @@ class FormsTestCase(SimpleTestCase):
self.assertHTMLEqual(
str(p),
"""<tr><th><label for="id_first_name">First name:</label></th><td>
-<input type="text" name="first_name" value="John" id="id_first_name" required /></td></tr>
+<input type="text" name="first_name" value="John" id="id_first_name" required></td></tr>
<tr><th><label for="id_last_name">Last name:</label></th><td>
-<input type="text" name="last_name" value="Lennon" id="id_last_name" required /></td></tr>
+<input type="text" name="last_name" value="Lennon" id="id_last_name" required></td></tr>
<tr><th><label for="id_birthday">Birthday:</label></th><td>
-<input type="text" name="birthday" value="1940-10-9" id="id_birthday" required /></td></tr>"""
+<input type="text" name="birthday" value="1940-10-9" id="id_birthday" required></td></tr>"""
)
def test_empty_dict(self):
@@ -119,49 +119,49 @@ class FormsTestCase(SimpleTestCase):
str(p),
"""<tr><th><label for="id_first_name">First name:</label></th><td>
<ul class="errorlist"><li>This field is required.</li></ul>
-<input type="text" name="first_name" id="id_first_name" required /></td></tr>
+<input type="text" name="first_name" id="id_first_name" required></td></tr>
<tr><th><label for="id_last_name">Last name:</label></th>
<td><ul class="errorlist"><li>This field is required.</li></ul>
-<input type="text" name="last_name" id="id_last_name" required /></td></tr>
+<input type="text" name="last_name" id="id_last_name" required></td></tr>
<tr><th><label for="id_birthday">Birthday:</label></th><td>
<ul class="errorlist"><li>This field is required.</li></ul>
-<input type="text" name="birthday" id="id_birthday" required /></td></tr>"""
+<input type="text" name="birthday" id="id_birthday" required></td></tr>"""
)
self.assertHTMLEqual(
p.as_table(),
"""<tr><th><label for="id_first_name">First name:</label></th><td>
<ul class="errorlist"><li>This field is required.</li></ul>
-<input type="text" name="first_name" id="id_first_name" required /></td></tr>
+<input type="text" name="first_name" id="id_first_name" required></td></tr>
<tr><th><label for="id_last_name">Last name:</label></th>
<td><ul class="errorlist"><li>This field is required.</li></ul>
-<input type="text" name="last_name" id="id_last_name" required /></td></tr>
+<input type="text" name="last_name" id="id_last_name" required></td></tr>
<tr><th><label for="id_birthday">Birthday:</label></th>
<td><ul class="errorlist"><li>This field is required.</li></ul>
-<input type="text" name="birthday" id="id_birthday" required /></td></tr>"""
+<input type="text" name="birthday" id="id_birthday" required></td></tr>"""
)
self.assertHTMLEqual(
p.as_ul(),
"""<li><ul class="errorlist"><li>This field is required.</li></ul>
<label for="id_first_name">First name:</label>
-<input type="text" name="first_name" id="id_first_name" required /></li>
+<input type="text" name="first_name" id="id_first_name" required></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
<label for="id_last_name">Last name:</label>
-<input type="text" name="last_name" id="id_last_name" required /></li>
+<input type="text" name="last_name" id="id_last_name" required></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
<label for="id_birthday">Birthday:</label>
-<input type="text" name="birthday" id="id_birthday" required /></li>"""
+<input type="text" name="birthday" id="id_birthday" required></li>"""
)
self.assertHTMLEqual(
p.as_p(),
"""<ul class="errorlist"><li>This field is required.</li></ul>
<p><label for="id_first_name">First name:</label>
-<input type="text" name="first_name" id="id_first_name" required /></p>
+<input type="text" name="first_name" id="id_first_name" required></p>
<ul class="errorlist"><li>This field is required.</li></ul>
<p><label for="id_last_name">Last name:</label>
-<input type="text" name="last_name" id="id_last_name" required /></p>
+<input type="text" name="last_name" id="id_last_name" required></p>
<ul class="errorlist"><li>This field is required.</li></ul>
<p><label for="id_birthday">Birthday:</label>
-<input type="text" name="birthday" id="id_birthday" required /></p>"""
+<input type="text" name="birthday" id="id_birthday" required></p>"""
)
def test_empty_querydict_args(self):
@@ -185,38 +185,38 @@ class FormsTestCase(SimpleTestCase):
self.assertHTMLEqual(
str(p),
"""<tr><th><label for="id_first_name">First name:</label></th><td>
-<input type="text" name="first_name" id="id_first_name" required /></td></tr>
+<input type="text" name="first_name" id="id_first_name" required></td></tr>
<tr><th><label for="id_last_name">Last name:</label></th><td>
-<input type="text" name="last_name" id="id_last_name" required /></td></tr>
+<input type="text" name="last_name" id="id_last_name" required></td></tr>
<tr><th><label for="id_birthday">Birthday:</label></th><td>
-<input type="text" name="birthday" id="id_birthday" required /></td></tr>"""
+<input type="text" name="birthday" id="id_birthday" required></td></tr>"""
)
self.assertHTMLEqual(
p.as_table(),
"""<tr><th><label for="id_first_name">First name:</label></th><td>
-<input type="text" name="first_name" id="id_first_name" required /></td></tr>
+<input type="text" name="first_name" id="id_first_name" required></td></tr>
<tr><th><label for="id_last_name">Last name:</label></th><td>
-<input type="text" name="last_name" id="id_last_name" required /></td></tr>
+<input type="text" name="last_name" id="id_last_name" required></td></tr>
<tr><th><label for="id_birthday">Birthday:</label></th><td>
-<input type="text" name="birthday" id="id_birthday" required /></td></tr>"""
+<input type="text" name="birthday" id="id_birthday" required></td></tr>"""
)
self.assertHTMLEqual(
p.as_ul(),
"""<li><label for="id_first_name">First name:</label>
-<input type="text" name="first_name" id="id_first_name" required /></li>
+<input type="text" name="first_name" id="id_first_name" required></li>
<li><label for="id_last_name">Last name:</label>
-<input type="text" name="last_name" id="id_last_name" required /></li>
+<input type="text" name="last_name" id="id_last_name" required></li>
<li><label for="id_birthday">Birthday:</label>
-<input type="text" name="birthday" id="id_birthday" required /></li>"""
+<input type="text" name="birthday" id="id_birthday" required></li>"""
)
self.assertHTMLEqual(
p.as_p(),
"""<p><label for="id_first_name">First name:</label>
-<input type="text" name="first_name" id="id_first_name" required /></p>
+<input type="text" name="first_name" id="id_first_name" required></p>
<p><label for="id_last_name">Last name:</label>
-<input type="text" name="last_name" id="id_last_name" required /></p>
+<input type="text" name="last_name" id="id_last_name" required></p>
<p><label for="id_birthday">Birthday:</label>
-<input type="text" name="birthday" id="id_birthday" required /></p>"""
+<input type="text" name="birthday" id="id_birthday" required></p>"""
)
def test_unicode_values(self):
@@ -229,33 +229,33 @@ class FormsTestCase(SimpleTestCase):
self.assertHTMLEqual(
p.as_table(),
'<tr><th><label for="id_first_name">First name:</label></th><td>'
- '<input type="text" name="first_name" value="John" id="id_first_name" required /></td></tr>\n'
+ '<input type="text" name="first_name" value="John" id="id_first_name" required></td></tr>\n'
'<tr><th><label for="id_last_name">Last name:</label>'
'</th><td><input type="text" name="last_name" '
'value="\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111"'
- 'id="id_last_name" required /></td></tr>\n'
+ 'id="id_last_name" required></td></tr>\n'
'<tr><th><label for="id_birthday">Birthday:</label></th><td>'
- '<input type="text" name="birthday" value="1940-10-9" id="id_birthday" required /></td></tr>'
+ '<input type="text" name="birthday" value="1940-10-9" id="id_birthday" required></td></tr>'
)
self.assertHTMLEqual(
p.as_ul(),
'<li><label for="id_first_name">First name:</label> '
- '<input type="text" name="first_name" value="John" id="id_first_name" required /></li>\n'
+ '<input type="text" name="first_name" value="John" id="id_first_name" required></li>\n'
'<li><label for="id_last_name">Last name:</label> '
'<input type="text" name="last_name" '
- 'value="\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111" id="id_last_name" required /></li>\n'
+ 'value="\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111" id="id_last_name" required></li>\n'
'<li><label for="id_birthday">Birthday:</label> '
- '<input type="text" name="birthday" value="1940-10-9" id="id_birthday" required /></li>'
+ '<input type="text" name="birthday" value="1940-10-9" id="id_birthday" required></li>'
)
self.assertHTMLEqual(
p.as_p(),
'<p><label for="id_first_name">First name:</label> '
- '<input type="text" name="first_name" value="John" id="id_first_name" required /></p>\n'
+ '<input type="text" name="first_name" value="John" id="id_first_name" required></p>\n'
'<p><label for="id_last_name">Last name:</label> '
'<input type="text" name="last_name" '
- 'value="\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111" id="id_last_name" required /></p>\n'
+ 'value="\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111" id="id_last_name" required></p>\n'
'<p><label for="id_birthday">Birthday:</label> '
- '<input type="text" name="birthday" value="1940-10-9" id="id_birthday" required /></p>'
+ '<input type="text" name="birthday" value="1940-10-9" id="id_birthday" required></p>'
)
p = Person({'last_name': 'Lennon'})
@@ -277,10 +277,10 @@ class FormsTestCase(SimpleTestCase):
p = Person()
self.assertHTMLEqual(
str(p['first_name']),
- '<input type="text" name="first_name" id="id_first_name" required />',
+ '<input type="text" name="first_name" id="id_first_name" required>',
)
- self.assertHTMLEqual(str(p['last_name']), '<input type="text" name="last_name" id="id_last_name" required />')
- self.assertHTMLEqual(str(p['birthday']), '<input type="text" name="birthday" id="id_birthday" required />')
+ self.assertHTMLEqual(str(p['last_name']), '<input type="text" name="last_name" id="id_last_name" required>')
+ self.assertHTMLEqual(str(p['birthday']), '<input type="text" name="birthday" id="id_birthday" required>')
def test_cleaned_data_only_fields(self):
# cleaned_data will always *only* contain a key for fields defined in the
@@ -340,29 +340,29 @@ class FormsTestCase(SimpleTestCase):
self.assertHTMLEqual(
p.as_table(),
"""<tr><th><label for="first_name_id">First name:</label></th><td>
-<input type="text" name="first_name" id="first_name_id" required /></td></tr>
+<input type="text" name="first_name" id="first_name_id" required></td></tr>
<tr><th><label for="last_name_id">Last name:</label></th><td>
-<input type="text" name="last_name" id="last_name_id" required /></td></tr>
+<input type="text" name="last_name" id="last_name_id" required></td></tr>
<tr><th><label for="birthday_id">Birthday:</label></th><td>
-<input type="text" name="birthday" id="birthday_id" required /></td></tr>"""
+<input type="text" name="birthday" id="birthday_id" required></td></tr>"""
)
self.assertHTMLEqual(
p.as_ul(),
"""<li><label for="first_name_id">First name:</label>
-<input type="text" name="first_name" id="first_name_id" required /></li>
+<input type="text" name="first_name" id="first_name_id" required></li>
<li><label for="last_name_id">Last name:</label>
-<input type="text" name="last_name" id="last_name_id" required /></li>
+<input type="text" name="last_name" id="last_name_id" required></li>
<li><label for="birthday_id">Birthday:</label>
-<input type="text" name="birthday" id="birthday_id" required /></li>"""
+<input type="text" name="birthday" id="birthday_id" required></li>"""
)
self.assertHTMLEqual(
p.as_p(),
"""<p><label for="first_name_id">First name:</label>
-<input type="text" name="first_name" id="first_name_id" required /></p>
+<input type="text" name="first_name" id="first_name_id" required></p>
<p><label for="last_name_id">Last name:</label>
-<input type="text" name="last_name" id="last_name_id" required /></p>
+<input type="text" name="last_name" id="last_name_id" required></p>
<p><label for="birthday_id">Birthday:</label>
-<input type="text" name="birthday" id="birthday_id" required /></p>"""
+<input type="text" name="birthday" id="birthday_id" required></p>"""
)
def test_auto_id_true(self):
@@ -372,11 +372,11 @@ class FormsTestCase(SimpleTestCase):
self.assertHTMLEqual(
p.as_ul(),
"""<li><label for="first_name">First name:</label>
-<input type="text" name="first_name" id="first_name" required /></li>
+<input type="text" name="first_name" id="first_name" required></li>
<li><label for="last_name">Last name:</label>
-<input type="text" name="last_name" id="last_name" required /></li>
+<input type="text" name="last_name" id="last_name" required></li>
<li><label for="birthday">Birthday:</label>
-<input type="text" name="birthday" id="birthday" required /></li>"""
+<input type="text" name="birthday" id="birthday" required></li>"""
)
def test_auto_id_false(self):
@@ -385,9 +385,9 @@ class FormsTestCase(SimpleTestCase):
p = Person(auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>First name: <input type="text" name="first_name" required /></li>
-<li>Last name: <input type="text" name="last_name" required /></li>
-<li>Birthday: <input type="text" name="birthday" required /></li>"""
+ """<li>First name: <input type="text" name="first_name" required></li>
+<li>Last name: <input type="text" name="last_name" required></li>
+<li>Birthday: <input type="text" name="birthday" required></li>"""
)
def test_id_on_field(self):
@@ -397,9 +397,9 @@ class FormsTestCase(SimpleTestCase):
self.assertHTMLEqual(
p.as_ul(),
"""<li><label for="first_name_id">First name:</label>
-<input type="text" id="first_name_id" name="first_name" required /></li>
-<li>Last name: <input type="text" name="last_name" required /></li>
-<li>Birthday: <input type="text" name="birthday" required /></li>"""
+<input type="text" id="first_name_id" name="first_name" required></li>
+<li>Last name: <input type="text" name="last_name" required></li>
+<li>Birthday: <input type="text" name="birthday" required></li>"""
)
def test_auto_id_on_form_and_field(self):
@@ -409,11 +409,11 @@ class FormsTestCase(SimpleTestCase):
self.assertHTMLEqual(
p.as_ul(),
"""<li><label for="first_name_id">First name:</label>
-<input type="text" id="first_name_id" name="first_name" required /></li>
+<input type="text" id="first_name_id" name="first_name" required></li>
<li><label for="last_name">Last name:</label>
-<input type="text" name="last_name" id="last_name" required /></li>
+<input type="text" name="last_name" id="last_name" required></li>
<li><label for="birthday">Birthday:</label>
-<input type="text" name="birthday" id="birthday" required /></li>"""
+<input type="text" name="birthday" id="birthday" required></li>"""
)
def test_various_boolean_values(self):
@@ -422,33 +422,33 @@ class FormsTestCase(SimpleTestCase):
get_spam = BooleanField()
f = SignupForm(auto_id=False)
- self.assertHTMLEqual(str(f['email']), '<input type="email" name="email" required />')
- self.assertHTMLEqual(str(f['get_spam']), '<input type="checkbox" name="get_spam" required />')
+ self.assertHTMLEqual(str(f['email']), '<input type="email" name="email" required>')
+ self.assertHTMLEqual(str(f['get_spam']), '<input type="checkbox" name="get_spam" required>')
f = SignupForm({'email': 'test@example.com', 'get_spam': True}, auto_id=False)
- self.assertHTMLEqual(str(f['email']), '<input type="email" name="email" value="test@example.com" required />')
+ self.assertHTMLEqual(str(f['email']), '<input type="email" name="email" value="test@example.com" required>')
self.assertHTMLEqual(
str(f['get_spam']),
- '<input checked type="checkbox" name="get_spam" required />',
+ '<input checked type="checkbox" name="get_spam" required>',
)
# 'True' or 'true' should be rendered without a value attribute
f = SignupForm({'email': 'test@example.com', 'get_spam': 'True'}, auto_id=False)
self.assertHTMLEqual(
str(f['get_spam']),
- '<input checked type="checkbox" name="get_spam" required />',
+ '<input checked type="checkbox" name="get_spam" required>',
)
f = SignupForm({'email': 'test@example.com', 'get_spam': 'true'}, auto_id=False)
self.assertHTMLEqual(
- str(f['get_spam']), '<input checked type="checkbox" name="get_spam" required />')
+ str(f['get_spam']), '<input checked type="checkbox" name="get_spam" required>')
# A value of 'False' or 'false' should be rendered unchecked
f = SignupForm({'email': 'test@example.com', 'get_spam': 'False'}, auto_id=False)
- self.assertHTMLEqual(str(f['get_spam']), '<input type="checkbox" name="get_spam" required />')
+ self.assertHTMLEqual(str(f['get_spam']), '<input type="checkbox" name="get_spam" required>')
f = SignupForm({'email': 'test@example.com', 'get_spam': 'false'}, auto_id=False)
- self.assertHTMLEqual(str(f['get_spam']), '<input type="checkbox" name="get_spam" required />')
+ self.assertHTMLEqual(str(f['get_spam']), '<input type="checkbox" name="get_spam" required>')
# A value of '0' should be interpreted as a True value (#16820)
f = SignupForm({'email': 'test@example.com', 'get_spam': '0'})
@@ -462,7 +462,7 @@ class FormsTestCase(SimpleTestCase):
message = CharField(widget=Textarea)
f = ContactForm(auto_id=False)
- self.assertHTMLEqual(str(f['subject']), '<input type="text" name="subject" required />')
+ self.assertHTMLEqual(str(f['subject']), '<input type="text" name="subject" required>')
self.assertHTMLEqual(str(f['message']), '<textarea name="message" rows="10" cols="40" required></textarea>')
# as_textarea(), as_text() and as_hidden() are shortcuts for changing the output
@@ -471,8 +471,8 @@ class FormsTestCase(SimpleTestCase):
f['subject'].as_textarea(),
'<textarea name="subject" rows="10" cols="40" required></textarea>',
)
- self.assertHTMLEqual(f['message'].as_text(), '<input type="text" name="message" required />')
- self.assertHTMLEqual(f['message'].as_hidden(), '<input type="hidden" name="message" />')
+ self.assertHTMLEqual(f['message'].as_text(), '<input type="text" name="message" required>')
+ self.assertHTMLEqual(f['message'].as_hidden(), '<input type="hidden" name="message">')
# The 'widget' parameter to a Field can also be an instance:
class ContactForm(Form):
@@ -484,7 +484,7 @@ class FormsTestCase(SimpleTestCase):
# Instance-level attrs are *not* carried over to as_textarea(), as_text() and
# as_hidden():
- self.assertHTMLEqual(f['message'].as_text(), '<input type="text" name="message" required />')
+ self.assertHTMLEqual(f['message'].as_text(), '<input type="text" name="message" required>')
f = ContactForm({'subject': 'Hello', 'message': 'I love you.'}, auto_id=False)
self.assertHTMLEqual(
f['subject'].as_textarea(),
@@ -492,9 +492,9 @@ class FormsTestCase(SimpleTestCase):
)
self.assertHTMLEqual(
f['message'].as_text(),
- '<input type="text" name="message" value="I love you." required />',
+ '<input type="text" name="message" value="I love you." required>',
)
- self.assertHTMLEqual(f['message'].as_hidden(), '<input type="hidden" name="message" value="I love you." />')
+ self.assertHTMLEqual(f['message'].as_hidden(), '<input type="hidden" name="message" value="I love you.">')
def test_forms_with_choices(self):
# For a form with a <select>, use ChoiceField:
@@ -585,18 +585,18 @@ class FormsTestCase(SimpleTestCase):
f = FrameworkForm(auto_id=False)
self.assertHTMLEqual(str(f['language']), """<ul>
-<li><label><input type="radio" name="language" value="P" required /> Python</label></li>
-<li><label><input type="radio" name="language" value="J" required /> Java</label></li>
+<li><label><input type="radio" name="language" value="P" required> Python</label></li>
+<li><label><input type="radio" name="language" value="J" required> Java</label></li>
</ul>""")
- self.assertHTMLEqual(f.as_table(), """<tr><th>Name:</th><td><input type="text" name="name" required /></td></tr>
+ self.assertHTMLEqual(f.as_table(), """<tr><th>Name:</th><td><input type="text" name="name" required></td></tr>
<tr><th>Language:</th><td><ul>
-<li><label><input type="radio" name="language" value="P" required /> Python</label></li>
-<li><label><input type="radio" name="language" value="J" required /> Java</label></li>
+<li><label><input type="radio" name="language" value="P" required> Python</label></li>
+<li><label><input type="radio" name="language" value="J" required> Java</label></li>
</ul></td></tr>""")
- self.assertHTMLEqual(f.as_ul(), """<li>Name: <input type="text" name="name" required /></li>
+ self.assertHTMLEqual(f.as_ul(), """<li>Name: <input type="text" name="name" required></li>
<li>Language: <ul>
-<li><label><input type="radio" name="language" value="P" required /> Python</label></li>
-<li><label><input type="radio" name="language" value="J" required /> Java</label></li>
+<li><label><input type="radio" name="language" value="P" required> Python</label></li>
+<li><label><input type="radio" name="language" value="J" required> Java</label></li>
</ul></li>""")
# Regarding auto_id and <label>, RadioSelect is a special case. Each radio button
@@ -606,9 +606,9 @@ class FormsTestCase(SimpleTestCase):
self.assertHTMLEqual(
str(f['language']),
"""<ul id="id_language">
-<li><label for="id_language_0"><input type="radio" id="id_language_0" value="P" name="language" required />
+<li><label for="id_language_0"><input type="radio" id="id_language_0" value="P" name="language" required>
Python</label></li>
-<li><label for="id_language_1"><input type="radio" id="id_language_1" value="J" name="language" required />
+<li><label for="id_language_1"><input type="radio" id="id_language_1" value="J" name="language" required>
Java</label></li>
</ul>"""
)
@@ -618,31 +618,31 @@ Java</label></li>
# ID of the *first* radio button.
self.assertHTMLEqual(
f.as_table(),
- """<tr><th><label for="id_name">Name:</label></th><td><input type="text" name="name" id="id_name" required /></td></tr>
+ """<tr><th><label for="id_name">Name:</label></th><td><input type="text" name="name" id="id_name" required></td></tr>
<tr><th><label for="id_language_0">Language:</label></th><td><ul id="id_language">
-<li><label for="id_language_0"><input type="radio" id="id_language_0" value="P" name="language" required />
+<li><label for="id_language_0"><input type="radio" id="id_language_0" value="P" name="language" required>
Python</label></li>
-<li><label for="id_language_1"><input type="radio" id="id_language_1" value="J" name="language" required />
+<li><label for="id_language_1"><input type="radio" id="id_language_1" value="J" name="language" required>
Java</label></li>
</ul></td></tr>"""
)
self.assertHTMLEqual(
f.as_ul(),
- """<li><label for="id_name">Name:</label> <input type="text" name="name" id="id_name" required /></li>
+ """<li><label for="id_name">Name:</label> <input type="text" name="name" id="id_name" required></li>
<li><label for="id_language_0">Language:</label> <ul id="id_language">
-<li><label for="id_language_0"><input type="radio" id="id_language_0" value="P" name="language" required />
+<li><label for="id_language_0"><input type="radio" id="id_language_0" value="P" name="language" required>
Python</label></li>
-<li><label for="id_language_1"><input type="radio" id="id_language_1" value="J" name="language" required />
+<li><label for="id_language_1"><input type="radio" id="id_language_1" value="J" name="language" required>
Java</label></li>
</ul></li>"""
)
self.assertHTMLEqual(
f.as_p(),
- """<p><label for="id_name">Name:</label> <input type="text" name="name" id="id_name" required /></p>
+ """<p><label for="id_name">Name:</label> <input type="text" name="name" id="id_name" required></p>
<p><label for="id_language_0">Language:</label> <ul id="id_language">
-<li><label for="id_language_0"><input type="radio" id="id_language_0" value="P" name="language" required />
+<li><label for="id_language_0"><input type="radio" id="id_language_0" value="P" name="language" required>
Python</label></li>
-<li><label for="id_language_1"><input type="radio" id="id_language_1" value="J" name="language" required />
+<li><label for="id_language_1"><input type="radio" id="id_language_1" value="J" name="language" required>
Java</label></li>
</ul></p>"""
)
@@ -652,9 +652,9 @@ Java</label></li>
self.assertHTMLEqual(
t.render(Context({'form': f})),
"""<div class="myradio"><label for="id_language_0">
-<input id="id_language_0" name="language" type="radio" value="P" required /> Python</label></div>
+<input id="id_language_0" name="language" type="radio" value="P" required> Python</label></div>
<div class="myradio"><label for="id_language_1">
-<input id="id_language_1" name="language" type="radio" value="J" required /> Java</label></div>"""
+<input id="id_language_1" name="language" type="radio" value="J" required> Java</label></div>"""
)
def test_form_with_iterable_boundfield(self):
@@ -667,17 +667,17 @@ Java</label></li>
f = BeatleForm(auto_id=False)
self.assertHTMLEqual(
'\n'.join(str(bf) for bf in f['name']),
- """<label><input type="radio" name="name" value="john" required /> John</label>
-<label><input type="radio" name="name" value="paul" required /> Paul</label>
-<label><input type="radio" name="name" value="george" required /> George</label>
-<label><input type="radio" name="name" value="ringo" required /> Ringo</label>"""
+ """<label><input type="radio" name="name" value="john" required> John</label>
+<label><input type="radio" name="name" value="paul" required> Paul</label>
+<label><input type="radio" name="name" value="george" required> George</label>
+<label><input type="radio" name="name" value="ringo" required> Ringo</label>"""
)
self.assertHTMLEqual(
'\n'.join('<div>%s</div>' % bf for bf in f['name']),
- """<div><label><input type="radio" name="name" value="john" required /> John</label></div>
-<div><label><input type="radio" name="name" value="paul" required /> Paul</label></div>
-<div><label><input type="radio" name="name" value="george" required /> George</label></div>
-<div><label><input type="radio" name="name" value="ringo" required /> Ringo</label></div>"""
+ """<div><label><input type="radio" name="name" value="john" required> John</label></div>
+<div><label><input type="radio" name="name" value="paul" required> Paul</label></div>
+<div><label><input type="radio" name="name" value="george" required> George</label></div>
+<div><label><input type="radio" name="name" value="ringo" required> Ringo</label></div>"""
)
def test_form_with_iterable_boundfield_id(self):
@@ -693,24 +693,24 @@ Java</label></li>
self.assertEqual(fields[0].choice_label, 'John')
self.assertHTMLEqual(
fields[0].tag(),
- '<input type="radio" name="name" value="john" id="id_name_0" required />'
+ '<input type="radio" name="name" value="john" id="id_name_0" required>'
)
self.assertHTMLEqual(
str(fields[0]),
'<label for="id_name_0"><input type="radio" name="name" '
- 'value="john" id="id_name_0" required /> John</label>'
+ 'value="john" id="id_name_0" required> John</label>'
)
self.assertEqual(fields[1].id_for_label, 'id_name_1')
self.assertEqual(fields[1].choice_label, 'Paul')
self.assertHTMLEqual(
fields[1].tag(),
- '<input type="radio" name="name" value="paul" id="id_name_1" required />'
+ '<input type="radio" name="name" value="paul" id="id_name_1" required>'
)
self.assertHTMLEqual(
str(fields[1]),
'<label for="id_name_1"><input type="radio" name="name" '
- 'value="paul" id="id_name_1" required /> Paul</label>'
+ 'value="paul" id="id_name_1" required> Paul</label>'
)
def test_iterable_boundfield_select(self):
@@ -730,7 +730,7 @@ Java</label></li>
name = CharField()
f = BeatleForm(auto_id=False)
- self.assertHTMLEqual('\n'.join(str(bf) for bf in f['name']), '<input type="text" name="name" required />')
+ self.assertHTMLEqual('\n'.join(str(bf) for bf in f['name']), '<input type="text" name="name" required>')
def test_boundfield_slice(self):
class BeatleForm(Form):
@@ -773,7 +773,7 @@ Java</label></li>
<option value="P">Paul McCartney</option>
</select>""")
f = SongForm({'name': 'Yesterday', 'composers': ['P']}, auto_id=False)
- self.assertHTMLEqual(str(f['name']), '<input type="text" name="name" value="Yesterday" required />')
+ self.assertHTMLEqual(str(f['name']), '<input type="text" name="name" value="Yesterday" required>')
self.assertHTMLEqual(str(f['composers']), """<select multiple name="composers" required>
<option value="J">John Lennon</option>
<option value="P" selected>Paul McCartney</option>
@@ -827,10 +827,10 @@ Java</label></li>
# have multiple values, its as_hidden() renders multiple <input type="hidden">
# tags.
f = SongForm({'name': 'Yesterday', 'composers': ['P']}, auto_id=False)
- self.assertHTMLEqual(f['composers'].as_hidden(), '<input type="hidden" name="composers" value="P" />')
+ self.assertHTMLEqual(f['composers'].as_hidden(), '<input type="hidden" name="composers" value="P">')
f = SongForm({'name': 'From Me To You', 'composers': ['P', 'J']}, auto_id=False)
- self.assertHTMLEqual(f['composers'].as_hidden(), """<input type="hidden" name="composers" value="P" />
-<input type="hidden" name="composers" value="J" />""")
+ self.assertHTMLEqual(f['composers'].as_hidden(), """<input type="hidden" name="composers" value="P">
+<input type="hidden" name="composers" value="J">""")
# DateTimeField rendered as_hidden() is special too
class MessageForm(Form):
@@ -840,13 +840,13 @@ Java</label></li>
self.assertTrue(f.is_valid())
self.assertHTMLEqual(
str(f['when']),
- '<input type="text" name="when_0" value="1992-01-01" id="id_when_0" required />'
- '<input type="text" name="when_1" value="01:01" id="id_when_1" required />'
+ '<input type="text" name="when_0" value="1992-01-01" id="id_when_0" required>'
+ '<input type="text" name="when_1" value="01:01" id="id_when_1" required>'
)
self.assertHTMLEqual(
f['when'].as_hidden(),
- '<input type="hidden" name="when_0" value="1992-01-01" id="id_when_0" />'
- '<input type="hidden" name="when_1" value="01:01" id="id_when_1" />'
+ '<input type="hidden" name="when_0" value="1992-01-01" id="id_when_0">'
+ '<input type="hidden" name="when_1" value="01:01" id="id_when_1">'
)
def test_multiple_choice_checkbox(self):
@@ -860,25 +860,25 @@ Java</label></li>
f = SongForm(auto_id=False)
self.assertHTMLEqual(str(f['composers']), """<ul>
-<li><label><input type="checkbox" name="composers" value="J" /> John Lennon</label></li>
-<li><label><input type="checkbox" name="composers" value="P" /> Paul McCartney</label></li>
+<li><label><input type="checkbox" name="composers" value="J"> John Lennon</label></li>
+<li><label><input type="checkbox" name="composers" value="P"> Paul McCartney</label></li>
</ul>""")
f = SongForm({'composers': ['J']}, auto_id=False)
self.assertHTMLEqual(str(f['composers']), """<ul>
-<li><label><input checked type="checkbox" name="composers" value="J" /> John Lennon</label></li>
-<li><label><input type="checkbox" name="composers" value="P" /> Paul McCartney</label></li>
+<li><label><input checked type="checkbox" name="composers" value="J"> John Lennon</label></li>
+<li><label><input type="checkbox" name="composers" value="P"> Paul McCartney</label></li>
</ul>""")
f = SongForm({'composers': ['J', 'P']}, auto_id=False)
self.assertHTMLEqual(str(f['composers']), """<ul>
-<li><label><input checked type="checkbox" name="composers" value="J" /> John Lennon</label></li>
-<li><label><input checked type="checkbox" name="composers" value="P" /> Paul McCartney</label></li>
+<li><label><input checked type="checkbox" name="composers" value="J"> John Lennon</label></li>
+<li><label><input checked type="checkbox" name="composers" value="P"> Paul McCartney</label></li>
</ul>""")
# Test iterating on individual checkboxes in a template
t = Template('{% for checkbox in form.composers %}<div class="mycheckbox">{{ checkbox }}</div>{% endfor %}')
self.assertHTMLEqual(t.render(Context({'form': f})), """<div class="mycheckbox"><label>
-<input checked name="composers" type="checkbox" value="J" /> John Lennon</label></div>
+<input checked name="composers" type="checkbox" value="J"> John Lennon</label></div>
<div class="mycheckbox"><label>
-<input checked name="composers" type="checkbox" value="P" /> Paul McCartney</label></div>""")
+<input checked name="composers" type="checkbox" value="P"> Paul McCartney</label></div>""")
def test_checkbox_auto_id(self):
# Regarding auto_id, CheckboxSelectMultiple is a special case. Each checkbox
@@ -896,9 +896,9 @@ Java</label></li>
str(f['composers']),
"""<ul id="composers_id">
<li><label for="composers_id_0">
-<input type="checkbox" name="composers" value="J" id="composers_id_0" /> John Lennon</label></li>
+<input type="checkbox" name="composers" value="J" id="composers_id_0"> John Lennon</label></li>
<li><label for="composers_id_1">
-<input type="checkbox" name="composers" value="P" id="composers_id_1" /> Paul McCartney</label></li>
+<input type="checkbox" name="composers" value="P" id="composers_id_1"> Paul McCartney</label></li>
</ul>"""
)
@@ -949,9 +949,9 @@ Java</label></li>
f = SongFormHidden(MultiValueDict({'name': ['Yesterday'], 'composers': ['J', 'P']}), auto_id=False)
self.assertHTMLEqual(
f.as_ul(),
- """<li>Name: <input type="text" name="name" value="Yesterday" required />
-<input type="hidden" name="composers" value="J" />
-<input type="hidden" name="composers" value="P" /></li>"""
+ """<li>Name: <input type="text" name="name" value="Yesterday" required>
+<input type="hidden" name="composers" value="J">
+<input type="hidden" name="composers" value="P"></li>"""
)
# When using CheckboxSelectMultiple, the framework expects a list of input and
@@ -996,10 +996,10 @@ Java</label></li>
f.as_table(),
"""<tr><th>&lt;em&gt;Special&lt;/em&gt; Field:</th><td>
<ul class="errorlist"><li>Something&#39;s wrong with &#39;Nothing to escape&#39;</li></ul>
-<input type="text" name="special_name" value="Nothing to escape" required /></td></tr>
+<input type="text" name="special_name" value="Nothing to escape" required></td></tr>
<tr><th><em>Special</em> Field:</th><td>
<ul class="errorlist"><li>'<b>Nothing to escape</b>' is a safe string</li></ul>
-<input type="text" name="special_safe_name" value="Nothing to escape" required /></td></tr>"""
+<input type="text" name="special_safe_name" value="Nothing to escape" required></td></tr>"""
)
f = EscapingForm({
'special_name': "Should escape < & > and <script>alert('xss')</script>",
@@ -1011,10 +1011,10 @@ Java</label></li>
<ul class="errorlist"><li>Something&#39;s wrong with &#39;Should escape &lt; &amp; &gt; and
&lt;script&gt;alert(&#39;xss&#39;)&lt;/script&gt;&#39;</li></ul>
<input type="text" name="special_name"
-value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/script&gt;" required /></td></tr>
+value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/script&gt;" required></td></tr>
<tr><th><em>Special</em> Field:</th><td>
<ul class="errorlist"><li>'<b><i>Do not escape</i></b>' is a safe string</li></ul>
-<input type="text" name="special_safe_name" value="&lt;i&gt;Do not escape&lt;/i&gt;" required /></td></tr>"""
+<input type="text" name="special_safe_name" value="&lt;i&gt;Do not escape&lt;/i&gt;" required></td></tr>"""
)
def test_validating_multiple_fields(self):
@@ -1101,11 +1101,11 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
f.as_table(),
"""<tr><th>Username:</th><td>
<ul class="errorlist"><li>This field is required.</li></ul>
-<input type="text" name="username" maxlength="10" required /></td></tr>
+<input type="text" name="username" maxlength="10" required></td></tr>
<tr><th>Password1:</th><td><ul class="errorlist"><li>This field is required.</li></ul>
-<input type="password" name="password1" required /></td></tr>
+<input type="password" name="password1" required></td></tr>
<tr><th>Password2:</th><td><ul class="errorlist"><li>This field is required.</li></ul>
-<input type="password" name="password2" required /></td></tr>"""
+<input type="password" name="password2" required></td></tr>"""
)
self.assertEqual(f.errors['username'], ['This field is required.'])
self.assertEqual(f.errors['password1'], ['This field is required.'])
@@ -1117,17 +1117,17 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
f.as_table(),
"""<tr><td colspan="2">
<ul class="errorlist nonfield"><li>Please make sure your passwords match.</li></ul></td></tr>
-<tr><th>Username:</th><td><input type="text" name="username" value="adrian" maxlength="10" required /></td></tr>
-<tr><th>Password1:</th><td><input type="password" name="password1" required /></td></tr>
-<tr><th>Password2:</th><td><input type="password" name="password2" required /></td></tr>"""
+<tr><th>Username:</th><td><input type="text" name="username" value="adrian" maxlength="10" required></td></tr>
+<tr><th>Password1:</th><td><input type="password" name="password1" required></td></tr>
+<tr><th>Password2:</th><td><input type="password" name="password2" required></td></tr>"""
)
self.assertHTMLEqual(
f.as_ul(),
"""<li><ul class="errorlist nonfield">
<li>Please make sure your passwords match.</li></ul></li>
-<li>Username: <input type="text" name="username" value="adrian" maxlength="10" required /></li>
-<li>Password1: <input type="password" name="password1" required /></li>
-<li>Password2: <input type="password" name="password2" required /></li>"""
+<li>Username: <input type="text" name="username" value="adrian" maxlength="10" required></li>
+<li>Password1: <input type="password" name="password1" required></li>
+<li>Password2: <input type="password" name="password2" required></li>"""
)
f = UserRegistration({'username': 'adrian', 'password1': 'foo', 'password2': 'foo'}, auto_id=False)
@@ -1251,9 +1251,9 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
p = Person(auto_id=False)
self.assertHTMLEqual(
p.as_table(),
- """<tr><th>First name:</th><td><input type="text" name="first_name" required /></td></tr>
-<tr><th>Last name:</th><td><input type="text" name="last_name" required /></td></tr>
-<tr><th>Birthday:</th><td><input type="text" name="birthday" required /></td></tr>"""
+ """<tr><th>First name:</th><td><input type="text" name="first_name" required></td></tr>
+<tr><th>Last name:</th><td><input type="text" name="last_name" required></td></tr>
+<tr><th>Birthday:</th><td><input type="text" name="birthday" required></td></tr>"""
)
# Instances of a dynamic Form do not persist fields from one Form instance to
@@ -1269,15 +1269,15 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
my_form = MyForm(field_list=field_list)
self.assertHTMLEqual(
my_form.as_table(),
- """<tr><th>Field1:</th><td><input type="text" name="field1" required /></td></tr>
-<tr><th>Field2:</th><td><input type="text" name="field2" required /></td></tr>"""
+ """<tr><th>Field1:</th><td><input type="text" name="field1" required></td></tr>
+<tr><th>Field2:</th><td><input type="text" name="field2" required></td></tr>"""
)
field_list = [('field3', CharField()), ('field4', CharField())]
my_form = MyForm(field_list=field_list)
self.assertHTMLEqual(
my_form.as_table(),
- """<tr><th>Field3:</th><td><input type="text" name="field3" required /></td></tr>
-<tr><th>Field4:</th><td><input type="text" name="field4" required /></td></tr>"""
+ """<tr><th>Field3:</th><td><input type="text" name="field3" required></td></tr>
+<tr><th>Field4:</th><td><input type="text" name="field4" required></td></tr>"""
)
class MyForm(Form):
@@ -1294,19 +1294,19 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
my_form = MyForm(field_list=field_list)
self.assertHTMLEqual(
my_form.as_table(),
- """<tr><th>Default field 1:</th><td><input type="text" name="default_field_1" required /></td></tr>
-<tr><th>Default field 2:</th><td><input type="text" name="default_field_2" required /></td></tr>
-<tr><th>Field1:</th><td><input type="text" name="field1" required /></td></tr>
-<tr><th>Field2:</th><td><input type="text" name="field2" required /></td></tr>"""
+ """<tr><th>Default field 1:</th><td><input type="text" name="default_field_1" required></td></tr>
+<tr><th>Default field 2:</th><td><input type="text" name="default_field_2" required></td></tr>
+<tr><th>Field1:</th><td><input type="text" name="field1" required></td></tr>
+<tr><th>Field2:</th><td><input type="text" name="field2" required></td></tr>"""
)
field_list = [('field3', CharField()), ('field4', CharField())]
my_form = MyForm(field_list=field_list)
self.assertHTMLEqual(
my_form.as_table(),
- """<tr><th>Default field 1:</th><td><input type="text" name="default_field_1" required /></td></tr>
-<tr><th>Default field 2:</th><td><input type="text" name="default_field_2" required /></td></tr>
-<tr><th>Field3:</th><td><input type="text" name="field3" required /></td></tr>
-<tr><th>Field4:</th><td><input type="text" name="field4" required /></td></tr>"""
+ """<tr><th>Default field 1:</th><td><input type="text" name="default_field_1" required></td></tr>
+<tr><th>Default field 2:</th><td><input type="text" name="default_field_2" required></td></tr>
+<tr><th>Field3:</th><td><input type="text" name="field3" required></td></tr>
+<tr><th>Field4:</th><td><input type="text" name="field4" required></td></tr>"""
)
# Similarly, changes to field attributes do not persist from one Form instance
@@ -1404,21 +1404,21 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
p = Person(auto_id=False)
self.assertHTMLEqual(
p.as_table(),
- """<tr><th>First name:</th><td><input type="text" name="first_name" required /></td></tr>
-<tr><th>Last name:</th><td><input type="text" name="last_name" required /></td></tr>
+ """<tr><th>First name:</th><td><input type="text" name="first_name" required></td></tr>
+<tr><th>Last name:</th><td><input type="text" name="last_name" required></td></tr>
<tr><th>Birthday:</th>
-<td><input type="text" name="birthday" required /><input type="hidden" name="hidden_text" /></td></tr>"""
+<td><input type="text" name="birthday" required><input type="hidden" name="hidden_text"></td></tr>"""
)
self.assertHTMLEqual(
p.as_ul(),
- """<li>First name: <input type="text" name="first_name" required /></li>
-<li>Last name: <input type="text" name="last_name" required /></li>
-<li>Birthday: <input type="text" name="birthday" required /><input type="hidden" name="hidden_text" /></li>"""
+ """<li>First name: <input type="text" name="first_name" required></li>
+<li>Last name: <input type="text" name="last_name" required></li>
+<li>Birthday: <input type="text" name="birthday" required><input type="hidden" name="hidden_text"></li>"""
)
self.assertHTMLEqual(
- p.as_p(), """<p>First name: <input type="text" name="first_name" required /></p>
-<p>Last name: <input type="text" name="last_name" required /></p>
-<p>Birthday: <input type="text" name="birthday" required /><input type="hidden" name="hidden_text" /></p>"""
+ p.as_p(), """<p>First name: <input type="text" name="first_name" required></p>
+<p>Last name: <input type="text" name="last_name" required></p>
+<p>Birthday: <input type="text" name="birthday" required><input type="hidden" name="hidden_text"></p>"""
)
# With auto_id set, a HiddenInput still gets an ID, but it doesn't get a label.
@@ -1426,32 +1426,32 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
self.assertHTMLEqual(
p.as_table(),
"""<tr><th><label for="id_first_name">First name:</label></th><td>
-<input type="text" name="first_name" id="id_first_name" required /></td></tr>
+<input type="text" name="first_name" id="id_first_name" required></td></tr>
<tr><th><label for="id_last_name">Last name:</label></th><td>
-<input type="text" name="last_name" id="id_last_name" required /></td></tr>
+<input type="text" name="last_name" id="id_last_name" required></td></tr>
<tr><th><label for="id_birthday">Birthday:</label></th><td>
-<input type="text" name="birthday" id="id_birthday" required />
-<input type="hidden" name="hidden_text" id="id_hidden_text" /></td></tr>"""
+<input type="text" name="birthday" id="id_birthday" required>
+<input type="hidden" name="hidden_text" id="id_hidden_text"></td></tr>"""
)
self.assertHTMLEqual(
p.as_ul(),
"""<li><label for="id_first_name">First name:</label>
-<input type="text" name="first_name" id="id_first_name" required /></li>
+<input type="text" name="first_name" id="id_first_name" required></li>
<li><label for="id_last_name">Last name:</label>
-<input type="text" name="last_name" id="id_last_name" required /></li>
+<input type="text" name="last_name" id="id_last_name" required></li>
<li><label for="id_birthday">Birthday:</label>
-<input type="text" name="birthday" id="id_birthday" required />
-<input type="hidden" name="hidden_text" id="id_hidden_text" /></li>"""
+<input type="text" name="birthday" id="id_birthday" required>
+<input type="hidden" name="hidden_text" id="id_hidden_text"></li>"""
)
self.assertHTMLEqual(
p.as_p(),
"""<p><label for="id_first_name">First name:</label>
-<input type="text" name="first_name" id="id_first_name" required /></p>
+<input type="text" name="first_name" id="id_first_name" required></p>
<p><label for="id_last_name">Last name:</label>
-<input type="text" name="last_name" id="id_last_name" required /></p>
+<input type="text" name="last_name" id="id_last_name" required></p>
<p><label for="id_birthday">Birthday:</label>
-<input type="text" name="birthday" id="id_birthday" required />
-<input type="hidden" name="hidden_text" id="id_hidden_text" /></p>"""
+<input type="text" name="birthday" id="id_birthday" required>
+<input type="hidden" name="hidden_text" id="id_hidden_text"></p>"""
)
# If a field with a HiddenInput has errors, the as_table() and as_ul() output
@@ -1463,26 +1463,26 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
p.as_table(),
"""<tr><td colspan="2">
<ul class="errorlist nonfield"><li>(Hidden field hidden_text) This field is required.</li></ul></td></tr>
-<tr><th>First name:</th><td><input type="text" name="first_name" value="John" required /></td></tr>
-<tr><th>Last name:</th><td><input type="text" name="last_name" value="Lennon" required /></td></tr>
-<tr><th>Birthday:</th><td><input type="text" name="birthday" value="1940-10-9" required />
-<input type="hidden" name="hidden_text" /></td></tr>"""
+<tr><th>First name:</th><td><input type="text" name="first_name" value="John" required></td></tr>
+<tr><th>Last name:</th><td><input type="text" name="last_name" value="Lennon" required></td></tr>
+<tr><th>Birthday:</th><td><input type="text" name="birthday" value="1940-10-9" required>
+<input type="hidden" name="hidden_text"></td></tr>"""
)
self.assertHTMLEqual(
p.as_ul(),
"""<li><ul class="errorlist nonfield"><li>(Hidden field hidden_text) This field is required.</li></ul></li>
-<li>First name: <input type="text" name="first_name" value="John" required /></li>
-<li>Last name: <input type="text" name="last_name" value="Lennon" required /></li>
-<li>Birthday: <input type="text" name="birthday" value="1940-10-9" required />
-<input type="hidden" name="hidden_text" /></li>"""
+<li>First name: <input type="text" name="first_name" value="John" required></li>
+<li>Last name: <input type="text" name="last_name" value="Lennon" required></li>
+<li>Birthday: <input type="text" name="birthday" value="1940-10-9" required>
+<input type="hidden" name="hidden_text"></li>"""
)
self.assertHTMLEqual(
p.as_p(),
"""<ul class="errorlist nonfield"><li>(Hidden field hidden_text) This field is required.</li></ul>
-<p>First name: <input type="text" name="first_name" value="John" required /></p>
-<p>Last name: <input type="text" name="last_name" value="Lennon" required /></p>
-<p>Birthday: <input type="text" name="birthday" value="1940-10-9" required />
-<input type="hidden" name="hidden_text" /></p>"""
+<p>First name: <input type="text" name="first_name" value="John" required></p>
+<p>Last name: <input type="text" name="last_name" value="Lennon" required></p>
+<p>Birthday: <input type="text" name="birthday" value="1940-10-9" required>
+<input type="hidden" name="hidden_text"></p>"""
)
# A corner case: It's possible for a form to have only HiddenInputs.
@@ -1491,9 +1491,9 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
bar = CharField(widget=HiddenInput)
p = TestForm(auto_id=False)
- self.assertHTMLEqual(p.as_table(), '<input type="hidden" name="foo" /><input type="hidden" name="bar" />')
- self.assertHTMLEqual(p.as_ul(), '<input type="hidden" name="foo" /><input type="hidden" name="bar" />')
- self.assertHTMLEqual(p.as_p(), '<input type="hidden" name="foo" /><input type="hidden" name="bar" />')
+ self.assertHTMLEqual(p.as_table(), '<input type="hidden" name="foo"><input type="hidden" name="bar">')
+ self.assertHTMLEqual(p.as_ul(), '<input type="hidden" name="foo"><input type="hidden" name="bar">')
+ self.assertHTMLEqual(p.as_p(), '<input type="hidden" name="foo"><input type="hidden" name="bar">')
def test_field_order(self):
# A Form's fields are displayed in the same order in which they were defined.
@@ -1514,20 +1514,20 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
field14 = CharField()
p = TestForm(auto_id=False)
- self.assertHTMLEqual(p.as_table(), """<tr><th>Field1:</th><td><input type="text" name="field1" required /></td></tr>
-<tr><th>Field2:</th><td><input type="text" name="field2" required /></td></tr>
-<tr><th>Field3:</th><td><input type="text" name="field3" required /></td></tr>
-<tr><th>Field4:</th><td><input type="text" name="field4" required /></td></tr>
-<tr><th>Field5:</th><td><input type="text" name="field5" required /></td></tr>
-<tr><th>Field6:</th><td><input type="text" name="field6" required /></td></tr>
-<tr><th>Field7:</th><td><input type="text" name="field7" required /></td></tr>
-<tr><th>Field8:</th><td><input type="text" name="field8" required /></td></tr>
-<tr><th>Field9:</th><td><input type="text" name="field9" required /></td></tr>
-<tr><th>Field10:</th><td><input type="text" name="field10" required /></td></tr>
-<tr><th>Field11:</th><td><input type="text" name="field11" required /></td></tr>
-<tr><th>Field12:</th><td><input type="text" name="field12" required /></td></tr>
-<tr><th>Field13:</th><td><input type="text" name="field13" required /></td></tr>
-<tr><th>Field14:</th><td><input type="text" name="field14" required /></td></tr>""")
+ self.assertHTMLEqual(p.as_table(), """<tr><th>Field1:</th><td><input type="text" name="field1" required></td></tr>
+<tr><th>Field2:</th><td><input type="text" name="field2" required></td></tr>
+<tr><th>Field3:</th><td><input type="text" name="field3" required></td></tr>
+<tr><th>Field4:</th><td><input type="text" name="field4" required></td></tr>
+<tr><th>Field5:</th><td><input type="text" name="field5" required></td></tr>
+<tr><th>Field6:</th><td><input type="text" name="field6" required></td></tr>
+<tr><th>Field7:</th><td><input type="text" name="field7" required></td></tr>
+<tr><th>Field8:</th><td><input type="text" name="field8" required></td></tr>
+<tr><th>Field9:</th><td><input type="text" name="field9" required></td></tr>
+<tr><th>Field10:</th><td><input type="text" name="field10" required></td></tr>
+<tr><th>Field11:</th><td><input type="text" name="field11" required></td></tr>
+<tr><th>Field12:</th><td><input type="text" name="field12" required></td></tr>
+<tr><th>Field13:</th><td><input type="text" name="field13" required></td></tr>
+<tr><th>Field14:</th><td><input type="text" name="field14" required></td></tr>""")
def test_explicit_field_order(self):
class TestFormParent(Form):
@@ -1586,10 +1586,10 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
p = UserRegistration(auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" maxlength="10" required /></li>
-<li>Password: <input type="password" name="password" maxlength="10" required /></li>
-<li>Realname: <input type="text" name="realname" maxlength="10" required /></li>
-<li>Address: <input type="text" name="address" required /></li>"""
+ """<li>Username: <input type="text" name="username" maxlength="10" required></li>
+<li>Password: <input type="password" name="password" maxlength="10" required></li>
+<li>Realname: <input type="text" name="realname" maxlength="10" required></li>
+<li>Address: <input type="text" name="address" required></li>"""
)
# If you specify a custom "attrs" that includes the "maxlength" attribute,
@@ -1602,8 +1602,8 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
p = UserRegistration(auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" maxlength="10" required /></li>
-<li>Password: <input type="password" name="password" maxlength="10" required /></li>"""
+ """<li>Username: <input type="text" name="username" maxlength="10" required></li>
+<li>Password: <input type="password" name="password" maxlength="10" required></li>"""
)
def test_specifying_labels(self):
@@ -1618,9 +1618,9 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
p = UserRegistration(auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Your username: <input type="text" name="username" maxlength="10" required /></li>
-<li>Password1: <input type="password" name="password1" required /></li>
-<li>Contraseña (de nuevo): <input type="password" name="password2" required /></li>"""
+ """<li>Your username: <input type="text" name="username" maxlength="10" required></li>
+<li>Password1: <input type="password" name="password1" required></li>
+<li>Contraseña (de nuevo): <input type="password" name="password2" required></li>"""
)
# Labels for as_* methods will only end in a colon if they don't end in other
@@ -1634,19 +1634,19 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
self.assertHTMLEqual(
Questions(auto_id=False).as_p(),
- """<p>The first question: <input type="text" name="q1" required /></p>
-<p>What is your name? <input type="text" name="q2" required /></p>
-<p>The answer to life is: <input type="text" name="q3" required /></p>
-<p>Answer this question! <input type="text" name="q4" required /></p>
-<p>The last question. Period. <input type="text" name="q5" required /></p>"""
+ """<p>The first question: <input type="text" name="q1" required></p>
+<p>What is your name? <input type="text" name="q2" required></p>
+<p>The answer to life is: <input type="text" name="q3" required></p>
+<p>Answer this question! <input type="text" name="q4" required></p>
+<p>The last question. Period. <input type="text" name="q5" required></p>"""
)
self.assertHTMLEqual(
Questions().as_p(),
- """<p><label for="id_q1">The first question:</label> <input type="text" name="q1" id="id_q1" required /></p>
-<p><label for="id_q2">What is your name?</label> <input type="text" name="q2" id="id_q2" required /></p>
-<p><label for="id_q3">The answer to life is:</label> <input type="text" name="q3" id="id_q3" required /></p>
-<p><label for="id_q4">Answer this question!</label> <input type="text" name="q4" id="id_q4" required /></p>
-<p><label for="id_q5">The last question. Period.</label> <input type="text" name="q5" id="id_q5" required /></p>"""
+ """<p><label for="id_q1">The first question:</label> <input type="text" name="q1" id="id_q1" required></p>
+<p><label for="id_q2">What is your name?</label> <input type="text" name="q2" id="id_q2" required></p>
+<p><label for="id_q3">The answer to life is:</label> <input type="text" name="q3" id="id_q3" required></p>
+<p><label for="id_q4">Answer this question!</label> <input type="text" name="q4" id="id_q4" required></p>
+<p><label for="id_q5">The last question. Period.</label> <input type="text" name="q5" id="id_q5" required></p>"""
)
# If a label is set to the empty string for a field, that field won't get a label.
@@ -1655,14 +1655,14 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
password = CharField(widget=PasswordInput)
p = UserRegistration(auto_id=False)
- self.assertHTMLEqual(p.as_ul(), """<li> <input type="text" name="username" maxlength="10" required /></li>
-<li>Password: <input type="password" name="password" required /></li>""")
+ self.assertHTMLEqual(p.as_ul(), """<li> <input type="text" name="username" maxlength="10" required></li>
+<li>Password: <input type="password" name="password" required></li>""")
p = UserRegistration(auto_id='id_%s')
self.assertHTMLEqual(
p.as_ul(),
- """<li> <input id="id_username" type="text" name="username" maxlength="10" required /></li>
+ """<li> <input id="id_username" type="text" name="username" maxlength="10" required></li>
<li><label for="id_password">Password:</label>
-<input type="password" name="password" id="id_password" required /></li>"""
+<input type="password" name="password" id="id_password" required></li>"""
)
# If label is None, Django will auto-create the label from the field name. This
@@ -1674,16 +1674,16 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
p = UserRegistration(auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" maxlength="10" required /></li>
-<li>Password: <input type="password" name="password" required /></li>"""
+ """<li>Username: <input type="text" name="username" maxlength="10" required></li>
+<li>Password: <input type="password" name="password" required></li>"""
)
p = UserRegistration(auto_id='id_%s')
self.assertHTMLEqual(
p.as_ul(),
"""<li><label for="id_username">Username:</label>
-<input id="id_username" type="text" name="username" maxlength="10" required /></li>
+<input id="id_username" type="text" name="username" maxlength="10" required></li>
<li><label for="id_password">Password:</label>
-<input type="password" name="password" id="id_password" required /></li>"""
+<input type="password" name="password" id="id_password" required></li>"""
)
def test_label_suffix(self):
@@ -1698,26 +1698,26 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
answer = CharField(label='Secret answer', label_suffix=' =')
f = FavoriteForm(auto_id=False)
- self.assertHTMLEqual(f.as_ul(), """<li>Favorite color? <input type="text" name="color" required /></li>
-<li>Favorite animal: <input type="text" name="animal" required /></li>
-<li>Secret answer = <input type="text" name="answer" required /></li>""")
+ self.assertHTMLEqual(f.as_ul(), """<li>Favorite color? <input type="text" name="color" required></li>
+<li>Favorite animal: <input type="text" name="animal" required></li>
+<li>Secret answer = <input type="text" name="answer" required></li>""")
f = FavoriteForm(auto_id=False, label_suffix='?')
- self.assertHTMLEqual(f.as_ul(), """<li>Favorite color? <input type="text" name="color" required /></li>
-<li>Favorite animal? <input type="text" name="animal" required /></li>
-<li>Secret answer = <input type="text" name="answer" required /></li>""")
+ self.assertHTMLEqual(f.as_ul(), """<li>Favorite color? <input type="text" name="color" required></li>
+<li>Favorite animal? <input type="text" name="animal" required></li>
+<li>Secret answer = <input type="text" name="answer" required></li>""")
f = FavoriteForm(auto_id=False, label_suffix='')
- self.assertHTMLEqual(f.as_ul(), """<li>Favorite color? <input type="text" name="color" required /></li>
-<li>Favorite animal <input type="text" name="animal" required /></li>
-<li>Secret answer = <input type="text" name="answer" required /></li>""")
+ self.assertHTMLEqual(f.as_ul(), """<li>Favorite color? <input type="text" name="color" required></li>
+<li>Favorite animal <input type="text" name="animal" required></li>
+<li>Secret answer = <input type="text" name="answer" required></li>""")
f = FavoriteForm(auto_id=False, label_suffix='\u2192')
self.assertHTMLEqual(
f.as_ul(),
- '<li>Favorite color? <input type="text" name="color" required /></li>\n'
- '<li>Favorite animal\u2192 <input type="text" name="animal" required /></li>\n'
- '<li>Secret answer = <input type="text" name="answer" required /></li>'
+ '<li>Favorite color? <input type="text" name="color" required></li>\n'
+ '<li>Favorite animal\u2192 <input type="text" name="animal" required></li>\n'
+ '<li>Secret answer = <input type="text" name="answer" required></li>'
)
def test_initial_data(self):
@@ -1734,8 +1734,8 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
p = UserRegistration(auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" value="django" maxlength="10" required /></li>
-<li>Password: <input type="password" name="password" required /></li>"""
+ """<li>Username: <input type="text" name="username" value="django" maxlength="10" required></li>
+<li>Password: <input type="password" name="password" required></li>"""
)
# Here, we're submitting data, so the initial value will *not* be displayed.
@@ -1743,24 +1743,24 @@ value="Should escape &lt; &amp; &gt; and &lt;script&gt;alert(&#39;xss&#39;)&lt;/
self.assertHTMLEqual(
p.as_ul(),
"""<li><ul class="errorlist"><li>This field is required.</li></ul>
-Username: <input type="text" name="username" maxlength="10" required /></li>
+Username: <input type="text" name="username" maxlength="10" required></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
-Password: <input type="password" name="password" required /></li>"""
+Password: <input type="password" name="password" required></li>"""
)
p = UserRegistration({'username': ''}, auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
"""<li><ul class="errorlist"><li>This field is required.</li></ul>
-Username: <input type="text" name="username" maxlength="10" required /></li>
+Username: <input type="text" name="username" maxlength="10" required></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
-Password: <input type="password" name="password" required /></li>"""
+Password: <input type="password" name="password" required></li>"""
)
p = UserRegistration({'username': 'foo'}, auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" value="foo" maxlength="10" required /></li>
+ """<li>Username: <input type="text" name="username" value="foo" maxlength="10" required></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
-Password: <input type="password" name="password" required /></li>"""
+Password: <input type="password" name="password" required></li>"""
)
# An 'initial' value is *not* used as a fallback if data is not provided. In this
@@ -1784,14 +1784,14 @@ Password: <input type="password" name="password" required /></li>"""
p = UserRegistration(initial={'username': 'django'}, auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" value="django" maxlength="10" required /></li>
-<li>Password: <input type="password" name="password" required /></li>"""
+ """<li>Username: <input type="text" name="username" value="django" maxlength="10" required></li>
+<li>Password: <input type="password" name="password" required></li>"""
)
p = UserRegistration(initial={'username': 'stephane'}, auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" value="stephane" maxlength="10" required /></li>
-<li>Password: <input type="password" name="password" required /></li>"""
+ """<li>Username: <input type="text" name="username" value="stephane" maxlength="10" required></li>
+<li>Password: <input type="password" name="password" required></li>"""
)
# The 'initial' parameter is meaningless if you pass data.
@@ -1799,23 +1799,23 @@ Password: <input type="password" name="password" required /></li>"""
self.assertHTMLEqual(
p.as_ul(),
"""<li><ul class="errorlist"><li>This field is required.</li></ul>
-Username: <input type="text" name="username" maxlength="10" required /></li>
+Username: <input type="text" name="username" maxlength="10" required></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
-Password: <input type="password" name="password" required /></li>"""
+Password: <input type="password" name="password" required></li>"""
)
p = UserRegistration({'username': ''}, initial={'username': 'django'}, auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
"""<li><ul class="errorlist"><li>This field is required.</li></ul>
-Username: <input type="text" name="username" maxlength="10" required /></li>
+Username: <input type="text" name="username" maxlength="10" required></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
-Password: <input type="password" name="password" required /></li>"""
+Password: <input type="password" name="password" required></li>"""
)
p = UserRegistration({'username': 'foo'}, initial={'username': 'django'}, auto_id=False)
self.assertHTMLEqual(
- p.as_ul(), """<li>Username: <input type="text" name="username" value="foo" maxlength="10" required /></li>
+ p.as_ul(), """<li>Username: <input type="text" name="username" value="foo" maxlength="10" required></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
-Password: <input type="password" name="password" required /></li>"""
+Password: <input type="password" name="password" required></li>"""
)
# A dynamic 'initial' value is *not* used as a fallback if data is not provided.
@@ -1834,8 +1834,8 @@ Password: <input type="password" name="password" required /></li>"""
p = UserRegistration(initial={'username': 'babik'}, auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" value="babik" maxlength="10" required /></li>
-<li>Password: <input type="password" name="password" required /></li>"""
+ """<li>Username: <input type="text" name="username" value="babik" maxlength="10" required></li>
+<li>Password: <input type="password" name="password" required></li>"""
)
def test_callable_initial_data(self):
@@ -1863,8 +1863,8 @@ Password: <input type="password" name="password" required /></li>"""
p = UserRegistration(initial={'username': initial_django, 'options': initial_options}, auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" value="django" maxlength="10" required /></li>
-<li>Password: <input type="password" name="password" required /></li>
+ """<li>Username: <input type="text" name="username" value="django" maxlength="10" required></li>
+<li>Password: <input type="password" name="password" required></li>
<li>Options: <select multiple name="options" required>
<option value="f" selected>foo</option>
<option value="b" selected>bar</option>
@@ -1877,9 +1877,9 @@ Password: <input type="password" name="password" required /></li>"""
self.assertHTMLEqual(
p.as_ul(),
"""<li><ul class="errorlist"><li>This field is required.</li></ul>
-Username: <input type="text" name="username" maxlength="10" required /></li>
+Username: <input type="text" name="username" maxlength="10" required></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
-Password: <input type="password" name="password" required /></li>
+Password: <input type="password" name="password" required></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
Options: <select multiple name="options" required>
<option value="f">foo</option>
@@ -1891,9 +1891,9 @@ Options: <select multiple name="options" required>
self.assertHTMLEqual(
p.as_ul(),
"""<li><ul class="errorlist"><li>This field is required.</li></ul>
- Username: <input type="text" name="username" maxlength="10" required /></li>
+ Username: <input type="text" name="username" maxlength="10" required></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
-Password: <input type="password" name="password" required /></li>
+Password: <input type="password" name="password" required></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
Options: <select multiple name="options" required>
<option value="f">foo</option>
@@ -1906,9 +1906,9 @@ Options: <select multiple name="options" required>
)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" value="foo" maxlength="10" required /></li>
+ """<li>Username: <input type="text" name="username" value="foo" maxlength="10" required></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
-Password: <input type="password" name="password" required /></li>
+Password: <input type="password" name="password" required></li>
<li>Options: <select multiple name="options" required>
<option value="f" selected>foo</option>
<option value="b" selected>bar</option>
@@ -1936,8 +1936,8 @@ Password: <input type="password" name="password" required /></li>
p = UserRegistration(auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" value="django" maxlength="10" required /></li>
-<li>Password: <input type="password" name="password" required /></li>
+ """<li>Username: <input type="text" name="username" value="django" maxlength="10" required></li>
+<li>Password: <input type="password" name="password" required></li>
<li>Options: <select multiple name="options" required>
<option value="f">foo</option>
<option value="b" selected>bar</option>
@@ -1947,8 +1947,8 @@ Password: <input type="password" name="password" required /></li>
p = UserRegistration(initial={'username': initial_stephane, 'options': initial_options}, auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" value="stephane" maxlength="10" required /></li>
-<li>Password: <input type="password" name="password" required /></li>
+ """<li>Username: <input type="text" name="username" value="stephane" maxlength="10" required></li>
+<li>Password: <input type="password" name="password" required></li>
<li>Options: <select multiple name="options" required>
<option value="f" selected>foo</option>
<option value="b" selected>bar</option>
@@ -2112,23 +2112,23 @@ Password: <input type="password" name="password" required /></li>
p = UserRegistration(auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" maxlength="10" required />
+ """<li>Username: <input type="text" name="username" maxlength="10" required>
<span class="helptext">e.g., user@example.com</span></li>
-<li>Password: <input type="password" name="password" required />
+<li>Password: <input type="password" name="password" required>
<span class="helptext">Wählen Sie mit Bedacht.</span></li>"""
)
self.assertHTMLEqual(
p.as_p(),
- """<p>Username: <input type="text" name="username" maxlength="10" required />
+ """<p>Username: <input type="text" name="username" maxlength="10" required>
<span class="helptext">e.g., user@example.com</span></p>
-<p>Password: <input type="password" name="password" required />
+<p>Password: <input type="password" name="password" required>
<span class="helptext">Wählen Sie mit Bedacht.</span></p>"""
)
self.assertHTMLEqual(
p.as_table(),
- """<tr><th>Username:</th><td><input type="text" name="username" maxlength="10" required /><br />
+ """<tr><th>Username:</th><td><input type="text" name="username" maxlength="10" required><br>
<span class="helptext">e.g., user@example.com</span></td></tr>
-<tr><th>Password:</th><td><input type="password" name="password" required /><br />
+<tr><th>Password:</th><td><input type="password" name="password" required><br>
<span class="helptext">Wählen Sie mit Bedacht.</span></td></tr>"""
)
@@ -2136,10 +2136,10 @@ Password: <input type="password" name="password" required /></li>
p = UserRegistration({'username': 'foo'}, auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" value="foo" maxlength="10" required />
+ """<li>Username: <input type="text" name="username" value="foo" maxlength="10" required>
<span class="helptext">e.g., user@example.com</span></li>
<li><ul class="errorlist"><li>This field is required.</li></ul>
-Password: <input type="password" name="password" required />
+Password: <input type="password" name="password" required>
<span class="helptext">Wählen Sie mit Bedacht.</span></li>"""
)
@@ -2153,10 +2153,10 @@ Password: <input type="password" name="password" required />
p = UserRegistration(auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>Username: <input type="text" name="username" maxlength="10" required />
+ """<li>Username: <input type="text" name="username" maxlength="10" required>
<span class="helptext">e.g., user@example.com</span></li>
-<li>Password: <input type="password" name="password" required />
-<input type="hidden" name="next" value="/" /></li>"""
+<li>Password: <input type="password" name="password" required>
+<input type="hidden" name="next" value="/"></li>"""
)
def test_subclassing_forms(self):
@@ -2174,17 +2174,17 @@ Password: <input type="password" name="password" required />
p = Person(auto_id=False)
self.assertHTMLEqual(
p.as_ul(),
- """<li>First name: <input type="text" name="first_name" required /></li>
-<li>Last name: <input type="text" name="last_name" required /></li>
-<li>Birthday: <input type="text" name="birthday" required /></li>"""
+ """<li>First name: <input type="text" name="first_name" required></li>
+<li>Last name: <input type="text" name="last_name" required></li>
+<li>Birthday: <input type="text" name="birthday" required></li>"""
)
m = Musician(auto_id=False)
self.assertHTMLEqual(
m.as_ul(),
- """<li>First name: <input type="text" name="first_name" required /></li>
-<li>Last name: <input type="text" name="last_name" required /></li>
-<li>Birthday: <input type="text" name="birthday" required /></li>
-<li>Instrument: <input type="text" name="instrument" required /></li>"""
+ """<li>First name: <input type="text" name="first_name" required></li>
+<li>Last name: <input type="text" name="last_name" required></li>
+<li>Birthday: <input type="text" name="birthday" required></li>
+<li>Instrument: <input type="text" name="instrument" required></li>"""
)
# Yes, you can subclass multiple forms. The fields are added in the order in
@@ -2201,11 +2201,11 @@ Password: <input type="password" name="password" required />
haircut_type = CharField()
b = Beatle(auto_id=False)
- self.assertHTMLEqual(b.as_ul(), """<li>Instrument: <input type="text" name="instrument" required /></li>
-<li>First name: <input type="text" name="first_name" required /></li>
-<li>Last name: <input type="text" name="last_name" required /></li>
-<li>Birthday: <input type="text" name="birthday" required /></li>
-<li>Haircut type: <input type="text" name="haircut_type" required /></li>""")
+ self.assertHTMLEqual(b.as_ul(), """<li>Instrument: <input type="text" name="instrument" required></li>
+<li>First name: <input type="text" name="first_name" required></li>
+<li>Last name: <input type="text" name="last_name" required></li>
+<li>Birthday: <input type="text" name="birthday" required></li>
+<li>Haircut type: <input type="text" name="haircut_type" required></li>""")
def test_forms_with_prefixes(self):
# Sometimes it's necessary to have multiple forms display on the same HTML page,
@@ -2229,23 +2229,23 @@ Password: <input type="password" name="password" required />
self.assertHTMLEqual(
p.as_ul(),
"""<li><label for="id_person1-first_name">First name:</label>
-<input type="text" name="person1-first_name" value="John" id="id_person1-first_name" required /></li>
+<input type="text" name="person1-first_name" value="John" id="id_person1-first_name" required></li>
<li><label for="id_person1-last_name">Last name:</label>
-<input type="text" name="person1-last_name" value="Lennon" id="id_person1-last_name" required /></li>
+<input type="text" name="person1-last_name" value="Lennon" id="id_person1-last_name" required></li>
<li><label for="id_person1-birthday">Birthday:</label>
-<input type="text" name="person1-birthday" value="1940-10-9" id="id_person1-birthday" required /></li>"""
+<input type="text" name="person1-birthday" value="1940-10-9" id="id_person1-birthday" required></li>"""
)
self.assertHTMLEqual(
str(p['first_name']),
- '<input type="text" name="person1-first_name" value="John" id="id_person1-first_name" required />'
+ '<input type="text" name="person1-first_name" value="John" id="id_person1-first_name" required>'
)
self.assertHTMLEqual(
str(p['last_name']),
- '<input type="text" name="person1-last_name" value="Lennon" id="id_person1-last_name" required />'
+ '<input type="text" name="person1-last_name" value="Lennon" id="id_person1-last_name" required>'
)
self.assertHTMLEqual(
str(p['birthday']),
- '<input type="text" name="person1-birthday" value="1940-10-9" id="id_person1-birthday" required />'
+ '<input type="text" name="person1-birthday" value="1940-10-9" id="id_person1-birthday" required>'
)
self.assertEqual(p.errors, {})
self.assertTrue(p.is_valid())
@@ -2318,11 +2318,11 @@ Password: <input type="password" name="password" required />
self.assertHTMLEqual(
p.as_ul(),
"""<li><label for="id_foo-prefix-first_name">First name:</label>
-<input type="text" name="foo-prefix-first_name" id="id_foo-prefix-first_name" required /></li>
+<input type="text" name="foo-prefix-first_name" id="id_foo-prefix-first_name" required></li>
<li><label for="id_foo-prefix-last_name">Last name:</label>
-<input type="text" name="foo-prefix-last_name" id="id_foo-prefix-last_name" required /></li>
+<input type="text" name="foo-prefix-last_name" id="id_foo-prefix-last_name" required></li>
<li><label for="id_foo-prefix-birthday">Birthday:</label>
-<input type="text" name="foo-prefix-birthday" id="id_foo-prefix-birthday" required /></li>"""
+<input type="text" name="foo-prefix-birthday" id="id_foo-prefix-birthday" required></li>"""
)
data = {
'foo-prefix-first_name': 'John',
@@ -2400,7 +2400,7 @@ Password: <input type="password" name="password" required />
f = FileForm(auto_id=False)
self.assertHTMLEqual(
f.as_table(),
- '<tr><th>File1:</th><td><input type="file" name="file1" required /></td></tr>',
+ '<tr><th>File1:</th><td><input type="file" name="file1" required></td></tr>',
)
f = FileForm(data={}, files={}, auto_id=False)
@@ -2408,7 +2408,7 @@ Password: <input type="password" name="password" required />
f.as_table(),
'<tr><th>File1:</th><td>'
'<ul class="errorlist"><li>This field is required.</li></ul>'
- '<input type="file" name="file1" required /></td></tr>'
+ '<input type="file" name="file1" required></td></tr>'
)
f = FileForm(data={}, files={'file1': SimpleUploadedFile('name', b'')}, auto_id=False)
@@ -2416,7 +2416,7 @@ Password: <input type="password" name="password" required />
f.as_table(),
'<tr><th>File1:</th><td>'
'<ul class="errorlist"><li>The submitted file is empty.</li></ul>'
- '<input type="file" name="file1" required /></td></tr>'
+ '<input type="file" name="file1" required></td></tr>'
)
f = FileForm(data={}, files={'file1': 'something that is not a file'}, auto_id=False)
@@ -2425,13 +2425,13 @@ Password: <input type="password" name="password" required />
'<tr><th>File1:</th><td>'
'<ul class="errorlist"><li>No file was submitted. Check the '
'encoding type on the form.</li></ul>'
- '<input type="file" name="file1" required /></td></tr>'
+ '<input type="file" name="file1" required></td></tr>'
)
f = FileForm(data={}, files={'file1': SimpleUploadedFile('name', b'some content')}, auto_id=False)
self.assertHTMLEqual(
f.as_table(),
- '<tr><th>File1:</th><td><input type="file" name="file1" required /></td></tr>',
+ '<tr><th>File1:</th><td><input type="file" name="file1" required></td></tr>',
)
self.assertTrue(f.is_valid())
@@ -2439,7 +2439,7 @@ Password: <input type="password" name="password" required />
f = FileForm(data={}, files={'file1': file1}, auto_id=False)
self.assertHTMLEqual(
f.as_table(),
- '<tr><th>File1:</th><td><input type="file" name="file1" required /></td></tr>',
+ '<tr><th>File1:</th><td><input type="file" name="file1" required></td></tr>',
)
# A required file field with initial data should not contain the
@@ -2448,7 +2448,7 @@ Password: <input type="password" name="password" required />
f = FileForm(initial={'file1': 'resume.txt'}, auto_id=False)
self.assertHTMLEqual(
f.as_table(),
- '<tr><th>File1:</th><td><input type="file" name="file1" /></td></tr>',
+ '<tr><th>File1:</th><td><input type="file" name="file1"></td></tr>',
)
def test_filefield_initial_callable(self):
@@ -2483,18 +2483,18 @@ Password: <input type="password" name="password" required />
t = Template(
'<form action="" method="post">\n'
- '<table>\n{{ form }}\n</table>\n<input type="submit" required />\n</form>'
+ '<table>\n{{ form }}\n</table>\n<input type="submit" required>\n</form>'
)
return t.render(Context({'form': form}))
# Case 1: GET (an empty form, with no errors).)
self.assertHTMLEqual(my_function('GET', {}), """<form action="" method="post">
<table>
-<tr><th>Username:</th><td><input type="text" name="username" maxlength="10" required /></td></tr>
-<tr><th>Password1:</th><td><input type="password" name="password1" required /></td></tr>
-<tr><th>Password2:</th><td><input type="password" name="password2" required /></td></tr>
+<tr><th>Username:</th><td><input type="text" name="username" maxlength="10" required></td></tr>
+<tr><th>Password1:</th><td><input type="password" name="password1" required></td></tr>
+<tr><th>Password2:</th><td><input type="password" name="password2" required></td></tr>
</table>
-<input type="submit" required />
+<input type="submit" required>
</form>""")
# Case 2: POST with erroneous data (a redisplayed form, with errors).)
self.assertHTMLEqual(
@@ -2504,11 +2504,11 @@ Password: <input type="password" name="password" required />
<tr><td colspan="2"><ul class="errorlist nonfield"><li>Please make sure your passwords match.</li></ul></td></tr>
<tr><th>Username:</th><td><ul class="errorlist">
<li>Ensure this value has at most 10 characters (it has 23).</li></ul>
-<input type="text" name="username" value="this-is-a-long-username" maxlength="10" required /></td></tr>
-<tr><th>Password1:</th><td><input type="password" name="password1" required /></td></tr>
-<tr><th>Password2:</th><td><input type="password" name="password2" required /></td></tr>
+<input type="text" name="username" value="this-is-a-long-username" maxlength="10" required></td></tr>
+<tr><th>Password1:</th><td><input type="password" name="password1" required></td></tr>
+<tr><th>Password2:</th><td><input type="password" name="password2" required></td></tr>
</table>
-<input type="submit" required />
+<input type="submit" required>
</form>"""
)
# Case 3: POST with valid data (the success message).)
@@ -2539,23 +2539,23 @@ Password: <input type="password" name="password" required />
{{ form.username.errors.as_ul }}<p><label>Your username: {{ form.username }}</label></p>
{{ form.password1.errors.as_ul }}<p><label>Password: {{ form.password1 }}</label></p>
{{ form.password2.errors.as_ul }}<p><label>Password (again): {{ form.password2 }}</label></p>
-<input type="submit" required />
+<input type="submit" required>
</form>''')
self.assertHTMLEqual(t.render(Context({'form': UserRegistration(auto_id=False)})), """<form action="">
-<p><label>Your username: <input type="text" name="username" maxlength="10" required /></label></p>
-<p><label>Password: <input type="password" name="password1" required /></label></p>
-<p><label>Password (again): <input type="password" name="password2" required /></label></p>
-<input type="submit" required />
+<p><label>Your username: <input type="text" name="username" maxlength="10" required></label></p>
+<p><label>Password: <input type="password" name="password1" required></label></p>
+<p><label>Password (again): <input type="password" name="password2" required></label></p>
+<input type="submit" required>
</form>""")
self.assertHTMLEqual(
t.render(Context({'form': UserRegistration({'username': 'django'}, auto_id=False)})),
"""<form action="">
-<p><label>Your username: <input type="text" name="username" value="django" maxlength="10" required /></label></p>
+<p><label>Your username: <input type="text" name="username" value="django" maxlength="10" required></label></p>
<ul class="errorlist"><li>This field is required.</li></ul><p>
-<label>Password: <input type="password" name="password1" required /></label></p>
+<label>Password: <input type="password" name="password1" required></label></p>
<ul class="errorlist"><li>This field is required.</li></ul>
-<p><label>Password (again): <input type="password" name="password2" required /></label></p>
-<input type="submit" required />
+<p><label>Password (again): <input type="password" name="password2" required></label></p>
+<input type="submit" required>
</form>"""
)
@@ -2567,13 +2567,13 @@ Password: <input type="password" name="password" required />
<p><label>{{ form.username.label }}: {{ form.username }}</label></p>
<p><label>{{ form.password1.label }}: {{ form.password1 }}</label></p>
<p><label>{{ form.password2.label }}: {{ form.password2 }}</label></p>
-<input type="submit" required />
+<input type="submit" required>
</form>''')
self.assertHTMLEqual(t.render(Context({'form': UserRegistration(auto_id=False)})), """<form action="">
-<p><label>Username: <input type="text" name="username" maxlength="10" required /></label></p>
-<p><label>Password1: <input type="password" name="password1" required /></label></p>
-<p><label>Password2: <input type="password" name="password2" required /></label></p>
-<input type="submit" required />
+<p><label>Username: <input type="text" name="username" maxlength="10" required></label></p>
+<p><label>Password1: <input type="password" name="password1" required></label></p>
+<p><label>Password2: <input type="password" name="password2" required></label></p>
+<input type="submit" required>
</form>""")
# User form.[field].label_tag to output a field's label with a <label> tag
@@ -2584,40 +2584,40 @@ Password: <input type="password" name="password" required />
<p>{{ form.username.label_tag }} {{ form.username }}</p>
<p>{{ form.password1.label_tag }} {{ form.password1 }}</p>
<p>{{ form.password2.label_tag }} {{ form.password2 }}</p>
-<input type="submit" required />
+<input type="submit" required>
</form>''')
self.assertHTMLEqual(t.render(Context({'form': UserRegistration(auto_id=False)})), """<form action="">
-<p>Username: <input type="text" name="username" maxlength="10" required /></p>
-<p>Password1: <input type="password" name="password1" required /></p>
-<p>Password2: <input type="password" name="password2" required /></p>
-<input type="submit" required />
+<p>Username: <input type="text" name="username" maxlength="10" required></p>
+<p>Password1: <input type="password" name="password1" required></p>
+<p>Password2: <input type="password" name="password2" required></p>
+<input type="submit" required>
</form>""")
self.assertHTMLEqual(t.render(Context({'form': UserRegistration(auto_id='id_%s')})), """<form action="">
<p><label for="id_username">Username:</label>
-<input id="id_username" type="text" name="username" maxlength="10" required /></p>
+<input id="id_username" type="text" name="username" maxlength="10" required></p>
<p><label for="id_password1">Password1:</label>
-<input type="password" name="password1" id="id_password1" required /></p>
+<input type="password" name="password1" id="id_password1" required></p>
<p><label for="id_password2">Password2:</label>
-<input type="password" name="password2" id="id_password2" required /></p>
-<input type="submit" required />
+<input type="password" name="password2" id="id_password2" required></p>
+<input type="submit" required>
</form>""")
# User form.[field].help_text to output a field's help text. If the given field
# does not have help text, nothing will be output.
t = Template('''<form action="">
-<p>{{ form.username.label_tag }} {{ form.username }}<br />{{ form.username.help_text }}</p>
+<p>{{ form.username.label_tag }} {{ form.username }}<br>{{ form.username.help_text }}</p>
<p>{{ form.password1.label_tag }} {{ form.password1 }}</p>
<p>{{ form.password2.label_tag }} {{ form.password2 }}</p>
-<input type="submit" required />
+<input type="submit" required>
</form>''')
self.assertHTMLEqual(
t.render(Context({'form': UserRegistration(auto_id=False)})),
"""<form action="">
-<p>Username: <input type="text" name="username" maxlength="10" required /><br />
+<p>Username: <input type="text" name="username" maxlength="10" required><br>
Good luck picking a username that doesn&#39;t already exist.</p>
-<p>Password1: <input type="password" name="password1" required /></p>
-<p>Password2: <input type="password" name="password2" required /></p>
-<input type="submit" required />
+<p>Password1: <input type="password" name="password1" required></p>
+<p>Password2: <input type="password" name="password2" required></p>
+<input type="submit" required>
</form>"""
)
self.assertEqual(
@@ -2633,17 +2633,17 @@ Good luck picking a username that doesn&#39;t already exist.</p>
{{ form.username.errors.as_ul }}<p><label>Your username: {{ form.username }}</label></p>
{{ form.password1.errors.as_ul }}<p><label>Password: {{ form.password1 }}</label></p>
{{ form.password2.errors.as_ul }}<p><label>Password (again): {{ form.password2 }}</label></p>
-<input type="submit" required />
+<input type="submit" required>
</form>''')
self.assertHTMLEqual(
t.render(Context({
'form': UserRegistration({'username': 'django', 'password1': 'foo', 'password2': 'bar'}, auto_id=False)
})),
"""<form action="">
-<p><label>Your username: <input type="text" name="username" value="django" maxlength="10" required /></label></p>
-<p><label>Password: <input type="password" name="password1" required /></label></p>
-<p><label>Password (again): <input type="password" name="password2" required /></label></p>
-<input type="submit" required />
+<p><label>Your username: <input type="text" name="username" value="django" maxlength="10" required></label></p>
+<p><label>Password: <input type="password" name="password1" required></label></p>
+<p><label>Password (again): <input type="password" name="password2" required></label></p>
+<input type="submit" required>
</form>"""
)
t = Template('''<form action="">
@@ -2651,7 +2651,7 @@ Good luck picking a username that doesn&#39;t already exist.</p>
{{ form.username.errors.as_ul }}<p><label>Your username: {{ form.username }}</label></p>
{{ form.password1.errors.as_ul }}<p><label>Password: {{ form.password1 }}</label></p>
{{ form.password2.errors.as_ul }}<p><label>Password (again): {{ form.password2 }}</label></p>
-<input type="submit" required />
+<input type="submit" required>
</form>''')
self.assertHTMLEqual(
t.render(Context({
@@ -2659,10 +2659,10 @@ Good luck picking a username that doesn&#39;t already exist.</p>
})),
"""<form action="">
<ul class="errorlist nonfield"><li>Please make sure your passwords match.</li></ul>
-<p><label>Your username: <input type="text" name="username" value="django" maxlength="10" required /></label></p>
-<p><label>Password: <input type="password" name="password1" required /></label></p>
-<p><label>Password (again): <input type="password" name="password2" required /></label></p>
-<input type="submit" required />
+<p><label>Your username: <input type="text" name="username" value="django" maxlength="10" required></label></p>
+<p><label>Password: <input type="password" name="password1" required></label></p>
+<p><label>Password (again): <input type="password" name="password2" required></label></p>
+<input type="submit" required>
</form>"""
)
@@ -2729,8 +2729,8 @@ Good luck picking a username that doesn&#39;t already exist.</p>
self.assertHTMLEqual(
MyForm().as_table(),
'<tr><th><label for="id_field1">Field1:</label></th>'
- '<td><input id="id_field1" type="text" name="field1" maxlength="50" required />'
- '<input type="hidden" name="initial-field1" id="initial-id_field1" /></td></tr>'
+ '<td><input id="id_field1" type="text" name="field1" maxlength="50" required>'
+ '<input type="hidden" name="initial-field1" id="initial-id_field1"></td></tr>'
)
def test_error_html_required_html_classes(self):
@@ -2747,33 +2747,33 @@ Good luck picking a username that doesn&#39;t already exist.</p>
self.assertHTMLEqual(
p.as_ul(),
"""<li class="required error"><ul class="errorlist"><li>This field is required.</li></ul>
-<label class="required" for="id_name">Name:</label> <input type="text" name="name" id="id_name" required /></li>
+<label class="required" for="id_name">Name:</label> <input type="text" name="name" id="id_name" required></li>
<li class="required"><label class="required" for="id_is_cool">Is cool:</label>
<select name="is_cool" id="id_is_cool">
<option value="1" selected>Unknown</option>
<option value="2">Yes</option>
<option value="3">No</option>
</select></li>
-<li><label for="id_email">Email:</label> <input type="email" name="email" id="id_email" /></li>
+<li><label for="id_email">Email:</label> <input type="email" name="email" id="id_email"></li>
<li class="required error"><ul class="errorlist"><li>This field is required.</li></ul>
-<label class="required" for="id_age">Age:</label> <input type="number" name="age" id="id_age" required /></li>"""
+<label class="required" for="id_age">Age:</label> <input type="number" name="age" id="id_age" required></li>"""
)
self.assertHTMLEqual(
p.as_p(),
"""<ul class="errorlist"><li>This field is required.</li></ul>
<p class="required error"><label class="required" for="id_name">Name:</label>
-<input type="text" name="name" id="id_name" required /></p>
+<input type="text" name="name" id="id_name" required></p>
<p class="required"><label class="required" for="id_is_cool">Is cool:</label>
<select name="is_cool" id="id_is_cool">
<option value="1" selected>Unknown</option>
<option value="2">Yes</option>
<option value="3">No</option>
</select></p>
-<p><label for="id_email">Email:</label> <input type="email" name="email" id="id_email" /></p>
+<p><label for="id_email">Email:</label> <input type="email" name="email" id="id_email"></p>
<ul class="errorlist"><li>This field is required.</li></ul>
<p class="required error"><label class="required" for="id_age">Age:</label>
-<input type="number" name="age" id="id_age" required /></p>"""
+<input type="number" name="age" id="id_age" required></p>"""
)
self.assertHTMLEqual(
@@ -2781,7 +2781,7 @@ Good luck picking a username that doesn&#39;t already exist.</p>
"""<tr class="required error">
<th><label class="required" for="id_name">Name:</label></th>
<td><ul class="errorlist"><li>This field is required.</li></ul>
-<input type="text" name="name" id="id_name" required /></td></tr>
+<input type="text" name="name" id="id_name" required></td></tr>
<tr class="required"><th><label class="required" for="id_is_cool">Is cool:</label></th>
<td><select name="is_cool" id="id_is_cool">
<option value="1" selected>Unknown</option>
@@ -2789,10 +2789,10 @@ Good luck picking a username that doesn&#39;t already exist.</p>
<option value="3">No</option>
</select></td></tr>
<tr><th><label for="id_email">Email:</label></th><td>
-<input type="email" name="email" id="id_email" /></td></tr>
+<input type="email" name="email" id="id_email"></td></tr>
<tr class="required error"><th><label class="required" for="id_age">Age:</label></th>
<td><ul class="errorlist"><li>This field is required.</li></ul>
-<input type="number" name="age" id="id_age" required /></td></tr>"""
+<input type="number" name="age" id="id_age" required></td></tr>"""
)
def test_label_has_required_css_class(self):
@@ -2819,8 +2819,8 @@ Good luck picking a username that doesn&#39;t already exist.</p>
form = EventForm()
self.assertHTMLEqual(
form.as_ul(),
- '<input type="hidden" name="happened_at_0" id="id_happened_at_0" />'
- '<input type="hidden" name="happened_at_1" id="id_happened_at_1" />'
+ '<input type="hidden" name="happened_at_0" id="id_happened_at_0">'
+ '<input type="hidden" name="happened_at_1" id="id_happened_at_1">'
)
def test_multivalue_field_validation(self):
@@ -3155,9 +3155,9 @@ Good luck picking a username that doesn&#39;t already exist.</p>
form = SomeForm()
self.assertHTMLEqual(
form.as_p(),
- '<p><input id="id_custom" name="custom" type="text" required /> custom'
- '<input id="id_hidden1" name="hidden1" type="hidden" />'
- '<input id="id_hidden2" name="hidden2" type="hidden" /></p>'
+ '<p><input id="id_custom" name="custom" type="text" required> custom'
+ '<input id="id_hidden1" name="hidden1" type="hidden">'
+ '<input id="id_hidden2" name="hidden2" type="hidden"></p>'
)
def test_field_name_with_hidden_input_and_non_matching_row_ender(self):
@@ -3174,7 +3174,7 @@ Good luck picking a username that doesn&#39;t already exist.</p>
return self._html_output(
normal_row='<p%(html_class_attr)s>%(field)s %(field_name)s</p>',
error_row='%s',
- row_ender='<hr /><hr />',
+ row_ender='<hr><hr>',
help_text_html=' %s',
errors_on_separate_row=True
)
@@ -3182,9 +3182,9 @@ Good luck picking a username that doesn&#39;t already exist.</p>
form = SomeForm()
self.assertHTMLEqual(
form.as_p(),
- '<p><input id="id_custom" name="custom" type="text" required /> custom</p>\n'
- '<input id="id_hidden1" name="hidden1" type="hidden" />'
- '<input id="id_hidden2" name="hidden2" type="hidden" /><hr /><hr />'
+ '<p><input id="id_custom" name="custom" type="text" required> custom</p>\n'
+ '<input id="id_hidden1" name="hidden1" type="hidden">'
+ '<input id="id_hidden2" name="hidden2" type="hidden"><hr><hr>'
)
def test_error_dict(self):
@@ -3312,23 +3312,23 @@ Good luck picking a username that doesn&#39;t already exist.</p>
"""<li><ul class="errorlist nonfield">
<li>(Hidden field last_name) This field is required.</li></ul></li><li>
<label for="id_first_name">First name:</label>
-<input id="id_first_name" name="first_name" type="text" value="John" required />
-<input id="id_last_name" name="last_name" type="hidden" /></li>"""
+<input id="id_first_name" name="first_name" type="text" value="John" required>
+<input id="id_last_name" name="last_name" type="hidden"></li>"""
)
self.assertHTMLEqual(
p.as_p(),
"""<ul class="errorlist nonfield"><li>(Hidden field last_name) This field is required.</li></ul>
<p><label for="id_first_name">First name:</label>
-<input id="id_first_name" name="first_name" type="text" value="John" required />
-<input id="id_last_name" name="last_name" type="hidden" /></p>"""
+<input id="id_first_name" name="first_name" type="text" value="John" required>
+<input id="id_last_name" name="last_name" type="hidden"></p>"""
)
self.assertHTMLEqual(
p.as_table(),
"""<tr><td colspan="2"><ul class="errorlist nonfield">
<li>(Hidden field last_name) This field is required.</li></ul></td></tr>
<tr><th><label for="id_first_name">First name:</label></th><td>
-<input id="id_first_name" name="first_name" type="text" value="John" required />
-<input id="id_last_name" name="last_name" type="hidden" /></td></tr>"""
+<input id="id_first_name" name="first_name" type="text" value="John" required>
+<input id="id_last_name" name="last_name" type="hidden"></td></tr>"""
)
def test_error_list_with_non_field_errors_has_correct_class(self):
@@ -3349,9 +3349,9 @@ Good luck picking a username that doesn&#39;t already exist.</p>
"""<li>
<ul class="errorlist nonfield"><li>Generic validation error</li></ul></li>
<li><label for="id_first_name">First name:</label>
-<input id="id_first_name" name="first_name" type="text" value="John" required /></li>
+<input id="id_first_name" name="first_name" type="text" value="John" required></li>
<li><label for="id_last_name">Last name:</label>
-<input id="id_last_name" name="last_name" type="text" value="Lennon" required /></li>"""
+<input id="id_last_name" name="last_name" type="text" value="Lennon" required></li>"""
)
self.assertHTMLEqual(
p.non_field_errors().as_text(),
@@ -3361,17 +3361,17 @@ Good luck picking a username that doesn&#39;t already exist.</p>
p.as_p(),
"""<ul class="errorlist nonfield"><li>Generic validation error</li></ul>
<p><label for="id_first_name">First name:</label>
-<input id="id_first_name" name="first_name" type="text" value="John" required /></p>
+<input id="id_first_name" name="first_name" type="text" value="John" required></p>
<p><label for="id_last_name">Last name:</label>
-<input id="id_last_name" name="last_name" type="text" value="Lennon" required /></p>"""
+<input id="id_last_name" name="last_name" type="text" value="Lennon" required></p>"""
)
self.assertHTMLEqual(
p.as_table(),
"""<tr><td colspan="2"><ul class="errorlist nonfield"><li>Generic validation error</li></ul></td></tr>
<tr><th><label for="id_first_name">First name:</label></th><td>
-<input id="id_first_name" name="first_name" type="text" value="John" required /></td></tr>
+<input id="id_first_name" name="first_name" type="text" value="John" required></td></tr>
<tr><th><label for="id_last_name">Last name:</label></th><td>
-<input id="id_last_name" name="last_name" type="text" value="Lennon" required /></td></tr>"""
+<input id="id_last_name" name="last_name" type="text" value="Lennon" required></td></tr>"""
)
def test_errorlist_override(self):
@@ -3392,11 +3392,11 @@ Good luck picking a username that doesn&#39;t already exist.</p>
data = {'email': 'invalid'}
f = CommentForm(data, auto_id=False, error_class=DivErrorList)
- self.assertHTMLEqual(f.as_p(), """<p>Name: <input type="text" name="name" maxlength="50" /></p>
+ self.assertHTMLEqual(f.as_p(), """<p>Name: <input type="text" name="name" maxlength="50"></p>
<div class="errorlist"><div class="error">Enter a valid email address.</div></div>
-<p>Email: <input type="email" name="email" value="invalid" required /></p>
+<p>Email: <input type="email" name="email" value="invalid" required></p>
<div class="errorlist"><div class="error">This field is required.</div></div>
-<p>Comment: <input type="text" name="comment" required /></p>""")
+<p>Comment: <input type="text" name="comment" required></p>""")
def test_error_escaping(self):
class TestForm(Form):
@@ -3415,8 +3415,8 @@ Good luck picking a username that doesn&#39;t already exist.</p>
'<li><ul class="errorlist nonfield"><li>(Hidden field hidden) Foo &amp; &quot;bar&quot;!</li></ul></li>'
'<li><ul class="errorlist"><li>Foo &amp; &quot;bar&quot;!</li></ul>'
'<label for="id_visible">Visible:</label> '
- '<input type="text" name="visible" value="b" id="id_visible" required />'
- '<input type="hidden" name="hidden" value="a" id="id_hidden" /></li>'
+ '<input type="text" name="visible" value="b" id="id_visible" required>'
+ '<input type="hidden" name="hidden" value="a" id="id_hidden"></li>'
)
def test_baseform_repr(self):
@@ -3529,8 +3529,8 @@ Good luck picking a username that doesn&#39;t already exist.</p>
form = MyForm()
self.assertHTMLEqual(
form.as_p(),
- '<p><label for="id_f1">F1:</label> <input id="id_f1" maxlength="30" name="f1" type="text" required /></p>'
- '<p><label for="id_f2">F2:</label> <input id="id_f2" maxlength="30" name="f2" type="text" /></p>'
+ '<p><label for="id_f1">F1:</label> <input id="id_f1" maxlength="30" name="f1" type="text" required></p>'
+ '<p><label for="id_f2">F2:</label> <input id="id_f2" maxlength="30" name="f2" type="text"></p>'
'<p><label for="id_f3">F3:</label> <textarea cols="40" id="id_f3" name="f3" rows="10" required>'
'</textarea></p>'
'<p><label for="id_f4">F4:</label> <select id="id_f4" name="f4">'
@@ -3541,8 +3541,8 @@ Good luck picking a username that doesn&#39;t already exist.</p>
self.assertHTMLEqual(
form.as_ul(),
'<li><label for="id_f1">F1:</label> '
- '<input id="id_f1" maxlength="30" name="f1" type="text" required /></li>'
- '<li><label for="id_f2">F2:</label> <input id="id_f2" maxlength="30" name="f2" type="text" /></li>'
+ '<input id="id_f1" maxlength="30" name="f1" type="text" required></li>'
+ '<li><label for="id_f2">F2:</label> <input id="id_f2" maxlength="30" name="f2" type="text"></li>'
'<li><label for="id_f3">F3:</label> <textarea cols="40" id="id_f3" name="f3" rows="10" required>'
'</textarea></li>'
'<li><label for="id_f4">F4:</label> <select id="id_f4" name="f4">'
@@ -3553,9 +3553,9 @@ Good luck picking a username that doesn&#39;t already exist.</p>
self.assertHTMLEqual(
form.as_table(),
'<tr><th><label for="id_f1">F1:</label></th>'
- '<td><input id="id_f1" maxlength="30" name="f1" type="text" required /></td></tr>'
+ '<td><input id="id_f1" maxlength="30" name="f1" type="text" required></td></tr>'
'<tr><th><label for="id_f2">F2:</label></th>'
- '<td><input id="id_f2" maxlength="30" name="f2" type="text" /></td></tr>'
+ '<td><input id="id_f2" maxlength="30" name="f2" type="text"></td></tr>'
'<tr><th><label for="id_f3">F3:</label></th>'
'<td><textarea cols="40" id="id_f3" name="f3" rows="10" required>'
'</textarea></td></tr>'
@@ -3576,8 +3576,8 @@ Good luck picking a username that doesn&#39;t already exist.</p>
form = MyForm()
self.assertHTMLEqual(
form.as_p(),
- '<p><label for="id_f1">F1:</label> <input id="id_f1" maxlength="30" name="f1" type="text" /></p>'
- '<p><label for="id_f2">F2:</label> <input id="id_f2" maxlength="30" name="f2" type="text" /></p>'
+ '<p><label for="id_f1">F1:</label> <input id="id_f1" maxlength="30" name="f1" type="text"></p>'
+ '<p><label for="id_f2">F2:</label> <input id="id_f2" maxlength="30" name="f2" type="text"></p>'
'<p><label for="id_f3">F3:</label> <textarea cols="40" id="id_f3" name="f3" rows="10">'
'</textarea></p>'
'<p><label for="id_f4">F4:</label> <select id="id_f4" name="f4">'
@@ -3587,8 +3587,8 @@ Good luck picking a username that doesn&#39;t already exist.</p>
)
self.assertHTMLEqual(
form.as_ul(),
- '<li><label for="id_f1">F1:</label> <input id="id_f1" maxlength="30" name="f1" type="text" /></li>'
- '<li><label for="id_f2">F2:</label> <input id="id_f2" maxlength="30" name="f2" type="text" /></li>'
+ '<li><label for="id_f1">F1:</label> <input id="id_f1" maxlength="30" name="f1" type="text"></li>'
+ '<li><label for="id_f2">F2:</label> <input id="id_f2" maxlength="30" name="f2" type="text"></li>'
'<li><label for="id_f3">F3:</label> <textarea cols="40" id="id_f3" name="f3" rows="10">'
'</textarea></li>'
'<li><label for="id_f4">F4:</label> <select id="id_f4" name="f4">'
@@ -3599,9 +3599,9 @@ Good luck picking a username that doesn&#39;t already exist.</p>
self.assertHTMLEqual(
form.as_table(),
'<tr><th><label for="id_f1">F1:</label></th>'
- '<td><input id="id_f1" maxlength="30" name="f1" type="text" /></td></tr>'
+ '<td><input id="id_f1" maxlength="30" name="f1" type="text"></td></tr>'
'<tr><th><label for="id_f2">F2:</label></th>'
- '<td><input id="id_f2" maxlength="30" name="f2" type="text" /></td></tr>'
+ '<td><input id="id_f2" maxlength="30" name="f2" type="text"></td></tr>'
'<tr><th><label for="id_f3">F3:</label></th><td><textarea cols="40" id="id_f3" name="f3" rows="10">'
'</textarea></td></tr>'
'<tr><th><label for="id_f4">F4:</label></th><td><select id="id_f4" name="f4">'
@@ -3620,13 +3620,13 @@ Good luck picking a username that doesn&#39;t already exist.</p>
f.as_p(),
'<ul class="errorlist nonfield">'
'<li>(Hidden field data) This field is required.</li></ul>\n<p> '
- '<input type="hidden" name="data" id="id_data" /></p>'
+ '<input type="hidden" name="data" id="id_data"></p>'
)
self.assertHTMLEqual(
f.as_table(),
'<tr><td colspan="2"><ul class="errorlist nonfield">'
'<li>(Hidden field data) This field is required.</li></ul>'
- '<input type="hidden" name="data" id="id_data" /></td></tr>'
+ '<input type="hidden" name="data" id="id_data"></td></tr>'
)
def test_field_named_data(self):
diff --git a/tests/forms_tests/tests/test_formsets.py b/tests/forms_tests/tests/test_formsets.py
index 6e8ca01261..7d06104791 100644
--- a/tests/forms_tests/tests/test_formsets.py
+++ b/tests/forms_tests/tests/test_formsets.py
@@ -87,12 +87,12 @@ class FormsFormsetTestCase(SimpleTestCase):
formset = self.make_choiceformset()
self.assertHTMLEqual(
str(formset),
- """<input type="hidden" name="choices-TOTAL_FORMS" value="1" />
-<input type="hidden" name="choices-INITIAL_FORMS" value="0" />
-<input type="hidden" name="choices-MIN_NUM_FORMS" value="0" />
-<input type="hidden" name="choices-MAX_NUM_FORMS" value="1000" />
-<tr><th>Choice:</th><td><input type="text" name="choices-0-choice" /></td></tr>
-<tr><th>Votes:</th><td><input type="number" name="choices-0-votes" /></td></tr>"""
+ """<input type="hidden" name="choices-TOTAL_FORMS" value="1">
+<input type="hidden" name="choices-INITIAL_FORMS" value="0">
+<input type="hidden" name="choices-MIN_NUM_FORMS" value="0">
+<input type="hidden" name="choices-MAX_NUM_FORMS" value="1000">
+<tr><th>Choice:</th><td><input type="text" name="choices-0-choice"></td></tr>
+<tr><th>Votes:</th><td><input type="number" name="choices-0-votes"></td></tr>"""
)
# FormSet are treated similarly to Forms. FormSet has an is_valid()
# method, and a cleaned_data or errors attribute depending on whether
@@ -199,10 +199,10 @@ class FormsFormsetTestCase(SimpleTestCase):
form_output.append(form.as_ul())
self.assertHTMLEqual(
'\n'.join(form_output),
- """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico" /></li>
-<li>Votes: <input type="number" name="choices-0-votes" value="100" /></li>
-<li>Choice: <input type="text" name="choices-1-choice" /></li>
-<li>Votes: <input type="number" name="choices-1-votes" /></li>"""
+ """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico"></li>
+<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>
+<li>Choice: <input type="text" name="choices-1-choice"></li>
+<li>Votes: <input type="number" name="choices-1-votes"></li>"""
)
def test_blank_form_unfilled(self):
@@ -244,12 +244,12 @@ class FormsFormsetTestCase(SimpleTestCase):
form_output.append(form.as_ul())
self.assertHTMLEqual(
'\n'.join(form_output),
- """<li>Choice: <input type="text" name="choices-0-choice" /></li>
-<li>Votes: <input type="number" name="choices-0-votes" /></li>
-<li>Choice: <input type="text" name="choices-1-choice" /></li>
-<li>Votes: <input type="number" name="choices-1-votes" /></li>
-<li>Choice: <input type="text" name="choices-2-choice" /></li>
-<li>Votes: <input type="number" name="choices-2-votes" /></li>"""
+ """<li>Choice: <input type="text" name="choices-0-choice"></li>
+<li>Votes: <input type="number" name="choices-0-votes"></li>
+<li>Choice: <input type="text" name="choices-1-choice"></li>
+<li>Votes: <input type="number" name="choices-1-votes"></li>
+<li>Choice: <input type="text" name="choices-2-choice"></li>
+<li>Votes: <input type="number" name="choices-2-votes"></li>"""
)
# Since every form was displayed as blank, they are also accepted as
# blank. This may seem a little strange, but min_num is used to require
@@ -285,10 +285,10 @@ class FormsFormsetTestCase(SimpleTestCase):
self.assertTrue(formset.forms[1].empty_permitted)
self.assertHTMLEqual(
'\n'.join(form_output),
- """<li>Choice: <input type="text" name="choices-0-choice" /></li>
-<li>Votes: <input type="number" name="choices-0-votes" /></li>
-<li>Choice: <input type="text" name="choices-1-choice" /></li>
-<li>Votes: <input type="number" name="choices-1-votes" /></li>"""
+ """<li>Choice: <input type="text" name="choices-0-choice"></li>
+<li>Votes: <input type="number" name="choices-0-votes"></li>
+<li>Choice: <input type="text" name="choices-1-choice"></li>
+<li>Votes: <input type="number" name="choices-1-votes"></li>"""
)
def test_min_num_displaying_more_than_one_blank_form_with_zero_extra(self):
@@ -300,12 +300,12 @@ class FormsFormsetTestCase(SimpleTestCase):
form_output.append(form.as_ul())
self.assertHTMLEqual(
'\n'.join(form_output),
- """<li>Choice: <input type="text" name="choices-0-choice" /></li>
-<li>Votes: <input type="number" name="choices-0-votes" /></li>
-<li>Choice: <input type="text" name="choices-1-choice" /></li>
-<li>Votes: <input type="number" name="choices-1-votes" /></li>
-<li>Choice: <input type="text" name="choices-2-choice" /></li>
-<li>Votes: <input type="number" name="choices-2-votes" /></li>"""
+ """<li>Choice: <input type="text" name="choices-0-choice"></li>
+<li>Votes: <input type="number" name="choices-0-votes"></li>
+<li>Choice: <input type="text" name="choices-1-choice"></li>
+<li>Votes: <input type="number" name="choices-1-votes"></li>
+<li>Choice: <input type="text" name="choices-2-choice"></li>
+<li>Votes: <input type="number" name="choices-2-votes"></li>"""
)
def test_single_form_completed(self):
@@ -439,21 +439,21 @@ class FormsFormsetTestCase(SimpleTestCase):
form_output.append(form.as_ul())
self.assertHTMLEqual(
'\n'.join(form_output),
- """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico" /></li>
-<li>Votes: <input type="number" name="choices-0-votes" value="100" /></li>
-<li>Choice: <input type="text" name="choices-1-choice" /></li>
-<li>Votes: <input type="number" name="choices-1-votes" /></li>
-<li>Choice: <input type="text" name="choices-2-choice" /></li>
-<li>Votes: <input type="number" name="choices-2-votes" /></li>
-<li>Choice: <input type="text" name="choices-3-choice" /></li>
-<li>Votes: <input type="number" name="choices-3-votes" /></li>"""
+ """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico"></li>
+<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>
+<li>Choice: <input type="text" name="choices-1-choice"></li>
+<li>Votes: <input type="number" name="choices-1-votes"></li>
+<li>Choice: <input type="text" name="choices-2-choice"></li>
+<li>Votes: <input type="number" name="choices-2-votes"></li>
+<li>Choice: <input type="text" name="choices-3-choice"></li>
+<li>Votes: <input type="number" name="choices-3-votes"></li>"""
)
# Retrieving an empty form works. Tt shows up in the form list.
self.assertTrue(formset.empty_form.empty_permitted)
self.assertHTMLEqual(
formset.empty_form.as_ul(),
- """<li>Choice: <input type="text" name="choices-__prefix__-choice" /></li>
-<li>Votes: <input type="number" name="choices-__prefix__-votes" /></li>"""
+ """<li>Choice: <input type="text" name="choices-__prefix__-choice"></li>
+<li>Votes: <input type="number" name="choices-__prefix__-votes"></li>"""
)
def test_formset_with_deletion(self):
@@ -470,15 +470,15 @@ class FormsFormsetTestCase(SimpleTestCase):
form_output.append(form.as_ul())
self.assertHTMLEqual(
'\n'.join(form_output),
- """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico" /></li>
-<li>Votes: <input type="number" name="choices-0-votes" value="100" /></li>
-<li>Delete: <input type="checkbox" name="choices-0-DELETE" /></li>
-<li>Choice: <input type="text" name="choices-1-choice" value="Fergie" /></li>
-<li>Votes: <input type="number" name="choices-1-votes" value="900" /></li>
-<li>Delete: <input type="checkbox" name="choices-1-DELETE" /></li>
-<li>Choice: <input type="text" name="choices-2-choice" /></li>
-<li>Votes: <input type="number" name="choices-2-votes" /></li>
-<li>Delete: <input type="checkbox" name="choices-2-DELETE" /></li>"""
+ """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico"></li>
+<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>
+<li>Delete: <input type="checkbox" name="choices-0-DELETE"></li>
+<li>Choice: <input type="text" name="choices-1-choice" value="Fergie"></li>
+<li>Votes: <input type="number" name="choices-1-votes" value="900"></li>
+<li>Delete: <input type="checkbox" name="choices-1-DELETE"></li>
+<li>Choice: <input type="text" name="choices-2-choice"></li>
+<li>Votes: <input type="number" name="choices-2-votes"></li>
+<li>Delete: <input type="checkbox" name="choices-2-DELETE"></li>"""
)
# To delete something, set that form's special delete field to 'on'.
# Let's go ahead and delete Fergie.
@@ -580,15 +580,15 @@ class FormsFormsetTestCase(SimpleTestCase):
form_output.append(form.as_ul())
self.assertHTMLEqual(
'\n'.join(form_output),
- """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico" /></li>
-<li>Votes: <input type="number" name="choices-0-votes" value="100" /></li>
-<li>Order: <input type="number" name="choices-0-ORDER" value="1" /></li>
-<li>Choice: <input type="text" name="choices-1-choice" value="Fergie" /></li>
-<li>Votes: <input type="number" name="choices-1-votes" value="900" /></li>
-<li>Order: <input type="number" name="choices-1-ORDER" value="2" /></li>
-<li>Choice: <input type="text" name="choices-2-choice" /></li>
-<li>Votes: <input type="number" name="choices-2-votes" /></li>
-<li>Order: <input type="number" name="choices-2-ORDER" /></li>"""
+ """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico"></li>
+<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>
+<li>Order: <input type="number" name="choices-0-ORDER" value="1"></li>
+<li>Choice: <input type="text" name="choices-1-choice" value="Fergie"></li>
+<li>Votes: <input type="number" name="choices-1-votes" value="900"></li>
+<li>Order: <input type="number" name="choices-1-ORDER" value="2"></li>
+<li>Choice: <input type="text" name="choices-2-choice"></li>
+<li>Votes: <input type="number" name="choices-2-votes"></li>
+<li>Order: <input type="number" name="choices-2-ORDER"></li>"""
)
data = {
'choices-TOTAL_FORMS': '3', # the number of forms rendered
@@ -684,22 +684,22 @@ class FormsFormsetTestCase(SimpleTestCase):
form_output.append(form.as_ul())
self.assertHTMLEqual(
'\n'.join(form_output),
- """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico" /></li>
-<li>Votes: <input type="number" name="choices-0-votes" value="100" /></li>
-<li>Order: <input type="number" name="choices-0-ORDER" value="1" /></li>
-<li>Delete: <input type="checkbox" name="choices-0-DELETE" /></li>
-<li>Choice: <input type="text" name="choices-1-choice" value="Fergie" /></li>
-<li>Votes: <input type="number" name="choices-1-votes" value="900" /></li>
-<li>Order: <input type="number" name="choices-1-ORDER" value="2" /></li>
-<li>Delete: <input type="checkbox" name="choices-1-DELETE" /></li>
-<li>Choice: <input type="text" name="choices-2-choice" value="The Decemberists" /></li>
-<li>Votes: <input type="number" name="choices-2-votes" value="500" /></li>
-<li>Order: <input type="number" name="choices-2-ORDER" value="3" /></li>
-<li>Delete: <input type="checkbox" name="choices-2-DELETE" /></li>
-<li>Choice: <input type="text" name="choices-3-choice" /></li>
-<li>Votes: <input type="number" name="choices-3-votes" /></li>
-<li>Order: <input type="number" name="choices-3-ORDER" /></li>
-<li>Delete: <input type="checkbox" name="choices-3-DELETE" /></li>"""
+ """<li>Choice: <input type="text" name="choices-0-choice" value="Calexico"></li>
+<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>
+<li>Order: <input type="number" name="choices-0-ORDER" value="1"></li>
+<li>Delete: <input type="checkbox" name="choices-0-DELETE"></li>
+<li>Choice: <input type="text" name="choices-1-choice" value="Fergie"></li>
+<li>Votes: <input type="number" name="choices-1-votes" value="900"></li>
+<li>Order: <input type="number" name="choices-1-ORDER" value="2"></li>
+<li>Delete: <input type="checkbox" name="choices-1-DELETE"></li>
+<li>Choice: <input type="text" name="choices-2-choice" value="The Decemberists"></li>
+<li>Votes: <input type="number" name="choices-2-votes" value="500"></li>
+<li>Order: <input type="number" name="choices-2-ORDER" value="3"></li>
+<li>Delete: <input type="checkbox" name="choices-2-DELETE"></li>
+<li>Choice: <input type="text" name="choices-3-choice"></li>
+<li>Votes: <input type="number" name="choices-3-votes"></li>
+<li>Order: <input type="number" name="choices-3-ORDER"></li>
+<li>Delete: <input type="checkbox" name="choices-3-DELETE"></li>"""
)
# Let's delete Fergie, and put The Decemberists ahead of Calexico.
data = {
@@ -803,11 +803,11 @@ class FormsFormsetTestCase(SimpleTestCase):
self.assertHTMLEqual(
'\n'.join(form_output),
"""<tr><th><label for="id_form-0-name">Name:</label></th>
-<td><input type="text" name="form-0-name" id="id_form-0-name" /></td></tr>
+<td><input type="text" name="form-0-name" id="id_form-0-name"></td></tr>
<tr><th><label for="id_form-1-name">Name:</label></th>
-<td><input type="text" name="form-1-name" id="id_form-1-name" /></td></tr>
+<td><input type="text" name="form-1-name" id="id_form-1-name"></td></tr>
<tr><th><label for="id_form-2-name">Name:</label></th>
-<td><input type="text" name="form-2-name" id="id_form-2-name" /></td></tr>"""
+<td><input type="text" name="form-2-name" id="id_form-2-name"></td></tr>"""
)
# If max_num is 0 then no form is rendered at all.
LimitedFavoriteDrinkFormSet = formset_factory(FavoriteDrinkForm, extra=3, max_num=0)
@@ -826,9 +826,9 @@ class FormsFormsetTestCase(SimpleTestCase):
self.assertHTMLEqual(
'\n'.join(form_output),
"""<tr><th><label for="id_form-0-name">Name:</label></th><td>
-<input type="text" name="form-0-name" id="id_form-0-name" /></td></tr>
+<input type="text" name="form-0-name" id="id_form-0-name"></td></tr>
<tr><th><label for="id_form-1-name">Name:</label></th>
-<td><input type="text" name="form-1-name" id="id_form-1-name" /></td></tr>"""
+<td><input type="text" name="form-1-name" id="id_form-1-name"></td></tr>"""
)
def test_limiting_extra_lest_than_max_num(self):
@@ -841,7 +841,7 @@ class FormsFormsetTestCase(SimpleTestCase):
self.assertHTMLEqual(
'\n'.join(form_output),
"""<tr><th><label for="id_form-0-name">Name:</label></th>
-<td><input type="text" name="form-0-name" id="id_form-0-name" /></td></tr>"""
+<td><input type="text" name="form-0-name" id="id_form-0-name"></td></tr>"""
)
def test_max_num_with_initial_data(self):
@@ -860,9 +860,9 @@ class FormsFormsetTestCase(SimpleTestCase):
self.assertHTMLEqual(
'\n'.join(form_output),
"""<tr><th><label for="id_form-0-name">Name:</label></th>
-<td><input type="text" name="form-0-name" value="Fernet and Coke" id="id_form-0-name" /></td></tr>
+<td><input type="text" name="form-0-name" value="Fernet and Coke" id="id_form-0-name"></td></tr>
<tr><th><label for="id_form-1-name">Name:</label></th>
-<td><input type="text" name="form-1-name" id="id_form-1-name" /></td></tr>"""
+<td><input type="text" name="form-1-name" id="id_form-1-name"></td></tr>"""
)
def test_max_num_zero(self):
@@ -891,9 +891,9 @@ class FormsFormsetTestCase(SimpleTestCase):
self.assertHTMLEqual(
'\n'.join(form_output),
"""<tr><th><label for="id_form-0-name">Name:</label></th>
-<td><input id="id_form-0-name" name="form-0-name" type="text" value="Fernet and Coke" /></td></tr>
+<td><input id="id_form-0-name" name="form-0-name" type="text" value="Fernet and Coke"></td></tr>
<tr><th><label for="id_form-1-name">Name:</label></th>
-<td><input id="id_form-1-name" name="form-1-name" type="text" value="Bloody Mary" /></td></tr>"""
+<td><input id="id_form-1-name" name="form-1-name" type="text" value="Bloody Mary"></td></tr>"""
)
def test_more_initial_than_max_num(self):
@@ -914,11 +914,11 @@ class FormsFormsetTestCase(SimpleTestCase):
self.assertHTMLEqual(
'\n'.join(form_output),
"""<tr><th><label for="id_form-0-name">Name:</label></th>
-<td><input id="id_form-0-name" name="form-0-name" type="text" value="Gin Tonic" /></td></tr>
+<td><input id="id_form-0-name" name="form-0-name" type="text" value="Gin Tonic"></td></tr>
<tr><th><label for="id_form-1-name">Name:</label></th>
-<td><input id="id_form-1-name" name="form-1-name" type="text" value="Bloody Mary" /></td></tr>
+<td><input id="id_form-1-name" name="form-1-name" type="text" value="Bloody Mary"></td></tr>
<tr><th><label for="id_form-2-name">Name:</label></th>
-<td><input id="id_form-2-name" name="form-2-name" type="text" value="Jack and Coke" /></td></tr>"""
+<td><input id="id_form-2-name" name="form-2-name" type="text" value="Jack and Coke"></td></tr>"""
)
def test_more_initial_form_result_in_one(self):
@@ -937,9 +937,9 @@ class FormsFormsetTestCase(SimpleTestCase):
self.assertHTMLEqual(
'\n'.join(form_output),
"""<tr><th><label for="id_form-0-name">Name:</label></th>
-<td><input type="text" name="form-0-name" value="Gin Tonic" id="id_form-0-name" /></td></tr>
+<td><input type="text" name="form-0-name" value="Gin Tonic" id="id_form-0-name"></td></tr>
<tr><th><label for="id_form-1-name">Name:</label></th>
-<td><input type="text" name="form-1-name" id="id_form-1-name" /></td></tr>"""
+<td><input type="text" name="form-1-name" id="id_form-1-name"></td></tr>"""
)
def test_management_form_prefix(self):
@@ -1195,36 +1195,36 @@ class FormsetAsFooTests(SimpleTestCase):
formset = ChoiceFormSet(data, auto_id=False, prefix='choices')
self.assertHTMLEqual(
formset.as_table(),
- """<input type="hidden" name="choices-TOTAL_FORMS" value="1" />
-<input type="hidden" name="choices-INITIAL_FORMS" value="0" />
-<input type="hidden" name="choices-MIN_NUM_FORMS" value="0" />
-<input type="hidden" name="choices-MAX_NUM_FORMS" value="0" />
-<tr><th>Choice:</th><td><input type="text" name="choices-0-choice" value="Calexico" /></td></tr>
-<tr><th>Votes:</th><td><input type="number" name="choices-0-votes" value="100" /></td></tr>"""
+ """<input type="hidden" name="choices-TOTAL_FORMS" value="1">
+<input type="hidden" name="choices-INITIAL_FORMS" value="0">
+<input type="hidden" name="choices-MIN_NUM_FORMS" value="0">
+<input type="hidden" name="choices-MAX_NUM_FORMS" value="0">
+<tr><th>Choice:</th><td><input type="text" name="choices-0-choice" value="Calexico"></td></tr>
+<tr><th>Votes:</th><td><input type="number" name="choices-0-votes" value="100"></td></tr>"""
)
def test_as_p(self):
formset = ChoiceFormSet(data, auto_id=False, prefix='choices')
self.assertHTMLEqual(
formset.as_p(),
- """<input type="hidden" name="choices-TOTAL_FORMS" value="1" />
-<input type="hidden" name="choices-INITIAL_FORMS" value="0" />
-<input type="hidden" name="choices-MIN_NUM_FORMS" value="0" />
-<input type="hidden" name="choices-MAX_NUM_FORMS" value="0" />
-<p>Choice: <input type="text" name="choices-0-choice" value="Calexico" /></p>
-<p>Votes: <input type="number" name="choices-0-votes" value="100" /></p>"""
+ """<input type="hidden" name="choices-TOTAL_FORMS" value="1">
+<input type="hidden" name="choices-INITIAL_FORMS" value="0">
+<input type="hidden" name="choices-MIN_NUM_FORMS" value="0">
+<input type="hidden" name="choices-MAX_NUM_FORMS" value="0">
+<p>Choice: <input type="text" name="choices-0-choice" value="Calexico"></p>
+<p>Votes: <input type="number" name="choices-0-votes" value="100"></p>"""
)
def test_as_ul(self):
formset = ChoiceFormSet(data, auto_id=False, prefix='choices')
self.assertHTMLEqual(
formset.as_ul(),
- """<input type="hidden" name="choices-TOTAL_FORMS" value="1" />
-<input type="hidden" name="choices-INITIAL_FORMS" value="0" />
-<input type="hidden" name="choices-MIN_NUM_FORMS" value="0" />
-<input type="hidden" name="choices-MAX_NUM_FORMS" value="0" />
-<li>Choice: <input type="text" name="choices-0-choice" value="Calexico" /></li>
-<li>Votes: <input type="number" name="choices-0-votes" value="100" /></li>"""
+ """<input type="hidden" name="choices-TOTAL_FORMS" value="1">
+<input type="hidden" name="choices-INITIAL_FORMS" value="0">
+<input type="hidden" name="choices-MIN_NUM_FORMS" value="0">
+<input type="hidden" name="choices-MAX_NUM_FORMS" value="0">
+<li>Choice: <input type="text" name="choices-0-choice" value="Calexico"></li>
+<li>Votes: <input type="number" name="choices-0-votes" value="100"></li>"""
)
diff --git a/tests/forms_tests/tests/test_i18n.py b/tests/forms_tests/tests/test_i18n.py
index 73d5b270eb..be166514bf 100644
--- a/tests/forms_tests/tests/test_i18n.py
+++ b/tests/forms_tests/tests/test_i18n.py
@@ -15,7 +15,7 @@ class FormsI18nTests(SimpleTestCase):
self.assertHTMLEqual(
f.as_p(),
'<p><label for="id_username">username:</label>'
- '<input id="id_username" type="text" name="username" maxlength="10" required /></p>'
+ '<input id="id_username" type="text" name="username" maxlength="10" required></p>'
)
# Translations are done at rendering time, so multi-lingual apps can define forms)
@@ -23,13 +23,13 @@ class FormsI18nTests(SimpleTestCase):
self.assertHTMLEqual(
f.as_p(),
'<p><label for="id_username">Benutzername:</label>'
- '<input id="id_username" type="text" name="username" maxlength="10" required /></p>'
+ '<input id="id_username" type="text" name="username" maxlength="10" required></p>'
)
with translation.override('pl'):
self.assertHTMLEqual(
f.as_p(),
'<p><label for="id_username">u\u017cytkownik:</label>'
- '<input id="id_username" type="text" name="username" maxlength="10" required /></p>'
+ '<input id="id_username" type="text" name="username" maxlength="10" required></p>'
)
def test_non_ascii_label(self):
@@ -59,12 +59,12 @@ class FormsI18nTests(SimpleTestCase):
'<p><label for="id_somechoice_0">\xc5\xf8\xdf:</label>'
'<ul id="id_somechoice">\n'
'<li><label for="id_somechoice_0">'
- '<input type="radio" id="id_somechoice_0" value="\xc5" name="somechoice" required /> '
+ '<input type="radio" id="id_somechoice_0" value="\xc5" name="somechoice" required> '
'En tied\xe4</label></li>\n'
'<li><label for="id_somechoice_1">'
- '<input type="radio" id="id_somechoice_1" value="\xf8" name="somechoice" required /> '
+ '<input type="radio" id="id_somechoice_1" value="\xf8" name="somechoice" required> '
'Mies</label></li>\n<li><label for="id_somechoice_2">'
- '<input type="radio" id="id_somechoice_2" value="\xdf" name="somechoice" required /> '
+ '<input type="radio" id="id_somechoice_2" value="\xdf" name="somechoice" required> '
'Nainen</label></li>\n</ul></p>'
)
@@ -78,12 +78,12 @@ class FormsI18nTests(SimpleTestCase):
'\u043d\u043e\u0435 \u043f\u043e\u043b\u0435.</li></ul>\n'
'<p><label for="id_somechoice_0">\xc5\xf8\xdf:</label>'
' <ul id="id_somechoice">\n<li><label for="id_somechoice_0">'
- '<input type="radio" id="id_somechoice_0" value="\xc5" name="somechoice" required /> '
+ '<input type="radio" id="id_somechoice_0" value="\xc5" name="somechoice" required> '
'En tied\xe4</label></li>\n'
'<li><label for="id_somechoice_1">'
- '<input type="radio" id="id_somechoice_1" value="\xf8" name="somechoice" required /> '
+ '<input type="radio" id="id_somechoice_1" value="\xf8" name="somechoice" required> '
'Mies</label></li>\n<li><label for="id_somechoice_2">'
- '<input type="radio" id="id_somechoice_2" value="\xdf" name="somechoice" required /> '
+ '<input type="radio" id="id_somechoice_2" value="\xdf" name="somechoice" required> '
'Nainen</label></li>\n</ul></p>'
)
diff --git a/tests/forms_tests/tests/test_media.py b/tests/forms_tests/tests/test_media.py
index 2b73a041be..9798fc027b 100644
--- a/tests/forms_tests/tests/test_media.py
+++ b/tests/forms_tests/tests/test_media.py
@@ -19,8 +19,8 @@ class FormsMediaTestCase(SimpleTestCase):
)
self.assertEqual(
str(m),
- """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
+ """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>"""
@@ -40,8 +40,8 @@ class FormsMediaTestCase(SimpleTestCase):
m3 = Media(Foo)
self.assertEqual(
str(m3),
- """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
+ """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>"""
@@ -72,8 +72,8 @@ class FormsMediaTestCase(SimpleTestCase):
w1 = MyWidget1()
self.assertEqual(
str(w1.media),
- """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
+ """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>"""
@@ -82,8 +82,8 @@ class FormsMediaTestCase(SimpleTestCase):
# Media objects can be interrogated by media type
self.assertEqual(
str(w1.media['css']),
- """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />"""
+ """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">"""
)
self.assertEqual(
@@ -122,9 +122,9 @@ class FormsMediaTestCase(SimpleTestCase):
w3 = MyWidget3()
self.assertEqual(
str(w1.media + w2.media + w3.media),
- """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet" />
+ """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>
@@ -134,8 +134,8 @@ class FormsMediaTestCase(SimpleTestCase):
# media addition hasn't affected the original objects
self.assertEqual(
str(w1.media),
- """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
+ """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>"""
@@ -150,7 +150,7 @@ class FormsMediaTestCase(SimpleTestCase):
js = ('/path/to/js1', '/path/to/js1')
w4 = MyWidget4()
- self.assertEqual(str(w4.media), """<link href="/path/to/css1" type="text/css" media="all" rel="stylesheet" />
+ self.assertEqual(str(w4.media), """<link href="/path/to/css1" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>""")
def test_media_property(self):
@@ -165,7 +165,7 @@ class FormsMediaTestCase(SimpleTestCase):
media = property(_media)
w4 = MyWidget4()
- self.assertEqual(str(w4.media), """<link href="/some/path" type="text/css" media="all" rel="stylesheet" />
+ self.assertEqual(str(w4.media), """<link href="/some/path" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/some/js"></script>""")
# Media properties can reference the media of their parents
@@ -175,8 +175,8 @@ class FormsMediaTestCase(SimpleTestCase):
media = property(_media)
w5 = MyWidget5()
- self.assertEqual(str(w5.media), """<link href="/some/path" type="text/css" media="all" rel="stylesheet" />
-<link href="/other/path" type="text/css" media="all" rel="stylesheet" />
+ self.assertEqual(str(w5.media), """<link href="/some/path" type="text/css" media="all" rel="stylesheet">
+<link href="/other/path" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/some/js"></script>
<script type="text/javascript" src="/other/js"></script>""")
@@ -198,9 +198,9 @@ class FormsMediaTestCase(SimpleTestCase):
w6 = MyWidget6()
self.assertEqual(
str(w6.media),
- """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
-<link href="/other/path" type="text/css" media="all" rel="stylesheet" />
+ """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
+<link href="/other/path" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>
@@ -226,8 +226,8 @@ class FormsMediaTestCase(SimpleTestCase):
w7 = MyWidget7()
self.assertEqual(
str(w7.media),
- """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
+ """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>"""
@@ -244,9 +244,9 @@ class FormsMediaTestCase(SimpleTestCase):
w8 = MyWidget8()
self.assertEqual(
str(w8.media),
- """<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet" />
-<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
+ """<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet">
+<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>
@@ -278,8 +278,8 @@ class FormsMediaTestCase(SimpleTestCase):
w9 = MyWidget9()
self.assertEqual(
str(w9.media),
- """<link href="/some/path" type="text/css" media="all" rel="stylesheet" />
-<link href="/other/path" type="text/css" media="all" rel="stylesheet" />
+ """<link href="/some/path" type="text/css" media="all" rel="stylesheet">
+<link href="/other/path" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/some/js"></script>
<script type="text/javascript" src="/other/js"></script>"""
)
@@ -294,8 +294,8 @@ class FormsMediaTestCase(SimpleTestCase):
js = ('/path/to/js1', '/path/to/js4')
w10 = MyWidget10()
- self.assertEqual(str(w10.media), """<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet" />
-<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
+ self.assertEqual(str(w10.media), """<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet">
+<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="/path/to/js4"></script>""")
@@ -319,9 +319,9 @@ class FormsMediaTestCase(SimpleTestCase):
w11 = MyWidget11()
self.assertEqual(
str(w11.media),
- """<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet" />
-<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
+ """<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet">
+<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>
@@ -348,9 +348,9 @@ class FormsMediaTestCase(SimpleTestCase):
w12 = MyWidget12()
self.assertEqual(
str(w12.media),
- """<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet" />
-<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
+ """<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet">
+<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="/path/to/js4"></script>"""
)
@@ -373,10 +373,10 @@ class FormsMediaTestCase(SimpleTestCase):
multimedia = MultimediaWidget()
self.assertEqual(
str(multimedia.media),
- """<link href="/file4" type="text/css" media="print" rel="stylesheet" />
-<link href="/file3" type="text/css" media="screen" rel="stylesheet" />
-<link href="/file1" type="text/css" media="screen, print" rel="stylesheet" />
-<link href="/file2" type="text/css" media="screen, print" rel="stylesheet" />
+ """<link href="/file4" type="text/css" media="print" rel="stylesheet">
+<link href="/file3" type="text/css" media="screen" rel="stylesheet">
+<link href="/file1" type="text/css" media="screen, print" rel="stylesheet">
+<link href="/file2" type="text/css" media="screen, print" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="/path/to/js4"></script>"""
)
@@ -417,9 +417,9 @@ class FormsMediaTestCase(SimpleTestCase):
mymulti = MyMultiWidget()
self.assertEqual(
str(mymulti.media),
- """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet" />
+ """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>
@@ -459,9 +459,9 @@ class FormsMediaTestCase(SimpleTestCase):
f1 = MyForm()
self.assertEqual(
str(f1.media),
- """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet" />
+ """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>
@@ -474,9 +474,9 @@ class FormsMediaTestCase(SimpleTestCase):
f2 = AnotherForm()
self.assertEqual(
str(f1.media + f2.media),
- """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet" />
+ """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>
@@ -496,10 +496,10 @@ class FormsMediaTestCase(SimpleTestCase):
f3 = FormWithMedia()
self.assertEqual(
str(f3.media),
- """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet" />
-<link href="/some/form/css" type="text/css" media="all" rel="stylesheet" />
+ """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet">
+<link href="/some/form/css" type="text/css" media="all" rel="stylesheet">
<script type="text/javascript" src="/path/to/js1"></script>
<script type="text/javascript" src="http://media.other.com/path/to/js2"></script>
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>
@@ -515,10 +515,10 @@ class FormsMediaTestCase(SimpleTestCase):
<script type="text/javascript" src="https://secure.other.com/path/to/js3"></script>
<script type="text/javascript" src="/path/to/js4"></script>
<script type="text/javascript" src="/some/form/javascript"></script>"""
- """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet" />
-<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet" />
-<link href="/some/form/css" type="text/css" media="all" rel="stylesheet" />"""
+ """<link href="http://media.example.com/static/path/to/css1" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css2" type="text/css" media="all" rel="stylesheet">
+<link href="/path/to/css3" type="text/css" media="all" rel="stylesheet">
+<link href="/some/form/css" type="text/css" media="all" rel="stylesheet">"""
)
def test_html_safe(self):
diff --git a/tests/forms_tests/tests/tests.py b/tests/forms_tests/tests/tests.py
index bf0d588f53..841a1c6799 100644
--- a/tests/forms_tests/tests/tests.py
+++ b/tests/forms_tests/tests/tests.py
@@ -109,24 +109,24 @@ class ModelFormCallableModelDefault(TestCase):
<option value="1" selected>ChoiceOption 1</option>
<option value="2">ChoiceOption 2</option>
<option value="3">ChoiceOption 3</option>
-</select><input type="hidden" name="initial-choice" value="1" id="initial-id_choice" /></p>
+</select><input type="hidden" name="initial-choice" value="1" id="initial-id_choice"></p>
<p><label for="id_choice_int">Choice int:</label> <select name="choice_int" id="id_choice_int">
<option value="1" selected>ChoiceOption 1</option>
<option value="2">ChoiceOption 2</option>
<option value="3">ChoiceOption 3</option>
-</select><input type="hidden" name="initial-choice_int" value="1" id="initial-id_choice_int" /></p>
+</select><input type="hidden" name="initial-choice_int" value="1" id="initial-id_choice_int"></p>
<p><label for="id_multi_choice">Multi choice:</label>
<select multiple name="multi_choice" id="id_multi_choice" required>
<option value="1" selected>ChoiceOption 1</option>
<option value="2">ChoiceOption 2</option>
<option value="3">ChoiceOption 3</option>
-</select><input type="hidden" name="initial-multi_choice" value="1" id="initial-id_multi_choice_0" /></p>
+</select><input type="hidden" name="initial-multi_choice" value="1" id="initial-id_multi_choice_0"></p>
<p><label for="id_multi_choice_int">Multi choice int:</label>
<select multiple name="multi_choice_int" id="id_multi_choice_int" required>
<option value="1" selected>ChoiceOption 1</option>
<option value="2">ChoiceOption 2</option>
<option value="3">ChoiceOption 3</option>
-</select><input type="hidden" name="initial-multi_choice_int" value="1" id="initial-id_multi_choice_int_0" /></p>"""
+</select><input type="hidden" name="initial-multi_choice_int" value="1" id="initial-id_multi_choice_int_0"></p>"""
)
def test_initial_instance_value(self):
@@ -145,26 +145,26 @@ class ModelFormCallableModelDefault(TestCase):
<option value="1">ChoiceOption 1</option>
<option value="2" selected>ChoiceOption 2</option>
<option value="3">ChoiceOption 3</option>
-</select><input type="hidden" name="initial-choice" value="2" id="initial-id_choice" /></p>
+</select><input type="hidden" name="initial-choice" value="2" id="initial-id_choice"></p>
<p><label for="id_choice_int">Choice int:</label> <select name="choice_int" id="id_choice_int">
<option value="1">ChoiceOption 1</option>
<option value="2" selected>ChoiceOption 2</option>
<option value="3">ChoiceOption 3</option>
-</select><input type="hidden" name="initial-choice_int" value="2" id="initial-id_choice_int" /></p>
+</select><input type="hidden" name="initial-choice_int" value="2" id="initial-id_choice_int"></p>
<p><label for="id_multi_choice">Multi choice:</label>
<select multiple name="multi_choice" id="id_multi_choice" required>
<option value="1">ChoiceOption 1</option>
<option value="2" selected>ChoiceOption 2</option>
<option value="3" selected>ChoiceOption 3</option>
-</select><input type="hidden" name="initial-multi_choice" value="2" id="initial-id_multi_choice_0" />
-<input type="hidden" name="initial-multi_choice" value="3" id="initial-id_multi_choice_1" /></p>
+</select><input type="hidden" name="initial-multi_choice" value="2" id="initial-id_multi_choice_0">
+<input type="hidden" name="initial-multi_choice" value="3" id="initial-id_multi_choice_1"></p>
<p><label for="id_multi_choice_int">Multi choice int:</label>
<select multiple name="multi_choice_int" id="id_multi_choice_int" required>
<option value="1">ChoiceOption 1</option>
<option value="2" selected>ChoiceOption 2</option>
<option value="3" selected>ChoiceOption 3</option>
-</select><input type="hidden" name="initial-multi_choice_int" value="2" id="initial-id_multi_choice_int_0" />
-<input type="hidden" name="initial-multi_choice_int" value="3" id="initial-id_multi_choice_int_1" /></p>"""
+</select><input type="hidden" name="initial-multi_choice_int" value="2" id="initial-id_multi_choice_int_0">
+<input type="hidden" name="initial-multi_choice_int" value="3" id="initial-id_multi_choice_int_1"></p>"""
)
@@ -308,7 +308,7 @@ class EmptyLabelTestCase(TestCase):
f = EmptyCharLabelChoiceForm()
self.assertHTMLEqual(
f.as_p(),
- """<p><label for="id_name">Name:</label> <input id="id_name" maxlength="10" name="name" type="text" required /></p>
+ """<p><label for="id_name">Name:</label> <input id="id_name" maxlength="10" name="name" type="text" required></p>
<p><label for="id_choice">Choice:</label> <select id="id_choice" name="choice">
<option value="" selected>No Preference</option>
<option value="f">Foo</option>
@@ -320,7 +320,7 @@ class EmptyLabelTestCase(TestCase):
f = EmptyCharLabelNoneChoiceForm()
self.assertHTMLEqual(
f.as_p(),
- """<p><label for="id_name">Name:</label> <input id="id_name" maxlength="10" name="name" type="text" required /></p>
+ """<p><label for="id_name">Name:</label> <input id="id_name" maxlength="10" name="name" type="text" required></p>
<p><label for="id_choice_string_w_none">Choice string w none:</label>
<select id="id_choice_string_w_none" name="choice_string_w_none">
<option value="" selected>No Preference</option>
@@ -350,7 +350,7 @@ class EmptyLabelTestCase(TestCase):
f = EmptyIntegerLabelChoiceForm()
self.assertHTMLEqual(
f.as_p(),
- """<p><label for="id_name">Name:</label> <input id="id_name" maxlength="10" name="name" type="text" required /></p>
+ """<p><label for="id_name">Name:</label> <input id="id_name" maxlength="10" name="name" type="text" required></p>
<p><label for="id_choice_integer">Choice integer:</label>
<select id="id_choice_integer" name="choice_integer">
<option value="" selected>No Preference</option>
@@ -370,7 +370,7 @@ class EmptyLabelTestCase(TestCase):
self.assertHTMLEqual(
f.as_p(),
"""<p><label for="id_name">Name:</label>
-<input id="id_name" maxlength="10" name="name" type="text" value="none-test" required /></p>
+<input id="id_name" maxlength="10" name="name" type="text" value="none-test" required></p>
<p><label for="id_choice_integer">Choice integer:</label>
<select id="id_choice_integer" name="choice_integer">
<option value="" selected>No Preference</option>
@@ -384,7 +384,7 @@ class EmptyLabelTestCase(TestCase):
self.assertHTMLEqual(
f.as_p(),
"""<p><label for="id_name">Name:</label>
-<input id="id_name" maxlength="10" name="name" type="text" value="foo-test" required /></p>
+<input id="id_name" maxlength="10" name="name" type="text" value="foo-test" required></p>
<p><label for="id_choice_integer">Choice integer:</label>
<select id="id_choice_integer" name="choice_integer">
<option value="">No Preference</option>
diff --git a/tests/forms_tests/widget_tests/test_checkboxinput.py b/tests/forms_tests/widget_tests/test_checkboxinput.py
index 1ae6ab73b6..6483b7f211 100644
--- a/tests/forms_tests/widget_tests/test_checkboxinput.py
+++ b/tests/forms_tests/widget_tests/test_checkboxinput.py
@@ -7,18 +7,18 @@ class CheckboxInputTest(WidgetTest):
widget = CheckboxInput()
def test_render_empty(self):
- self.check_html(self.widget, 'is_cool', '', html='<input type="checkbox" name="is_cool" />')
+ self.check_html(self.widget, 'is_cool', '', html='<input type="checkbox" name="is_cool">')
def test_render_none(self):
- self.check_html(self.widget, 'is_cool', None, html='<input type="checkbox" name="is_cool" />')
+ self.check_html(self.widget, 'is_cool', None, html='<input type="checkbox" name="is_cool">')
def test_render_false(self):
- self.check_html(self.widget, 'is_cool', False, html='<input type="checkbox" name="is_cool" />')
+ self.check_html(self.widget, 'is_cool', False, html='<input type="checkbox" name="is_cool">')
def test_render_true(self):
self.check_html(
self.widget, 'is_cool', True,
- html='<input checked type="checkbox" name="is_cool" />'
+ html='<input checked type="checkbox" name="is_cool">'
)
def test_render_value(self):
@@ -28,7 +28,7 @@ class CheckboxInputTest(WidgetTest):
"""
self.check_html(
self.widget, 'is_cool', 'foo',
- html='<input checked type="checkbox" name="is_cool" value="foo" />',
+ html='<input checked type="checkbox" name="is_cool" value="foo">',
)
def test_render_int(self):
@@ -37,11 +37,11 @@ class CheckboxInputTest(WidgetTest):
"""
self.check_html(
self.widget, 'is_cool', 0,
- html='<input checked type="checkbox" name="is_cool" value="0" />',
+ html='<input checked type="checkbox" name="is_cool" value="0">',
)
self.check_html(
self.widget, 'is_cool', 1,
- html='<input checked type="checkbox" name="is_cool" value="1" />',
+ html='<input checked type="checkbox" name="is_cool" value="1">',
)
def test_render_check_test(self):
@@ -51,16 +51,16 @@ class CheckboxInputTest(WidgetTest):
"""
widget = CheckboxInput(check_test=lambda value: value.startswith('hello'))
self.check_html(widget, 'greeting', '', html=(
- '<input type="checkbox" name="greeting" />'
+ '<input type="checkbox" name="greeting">'
))
self.check_html(widget, 'greeting', 'hello', html=(
- '<input checked type="checkbox" name="greeting" value="hello" />'
+ '<input checked type="checkbox" name="greeting" value="hello">'
))
self.check_html(widget, 'greeting', 'hello there', html=(
- '<input checked type="checkbox" name="greeting" value="hello there" />'
+ '<input checked type="checkbox" name="greeting" value="hello there">'
))
self.check_html(widget, 'greeting', 'hello & goodbye', html=(
- '<input checked type="checkbox" name="greeting" value="hello &amp; goodbye" />'
+ '<input checked type="checkbox" name="greeting" value="hello &amp; goodbye">'
))
def test_render_check_exception(self):
diff --git a/tests/forms_tests/widget_tests/test_checkboxselectmultiple.py b/tests/forms_tests/widget_tests/test_checkboxselectmultiple.py
index 239f80da47..ef31ce9d36 100644
--- a/tests/forms_tests/widget_tests/test_checkboxselectmultiple.py
+++ b/tests/forms_tests/widget_tests/test_checkboxselectmultiple.py
@@ -13,20 +13,20 @@ class CheckboxSelectMultipleTest(WidgetTest):
def test_render_value(self):
self.check_html(self.widget(choices=self.beatles), 'beatles', ['J'], html=(
"""<ul>
- <li><label><input checked type="checkbox" name="beatles" value="J" /> John</label></li>
- <li><label><input type="checkbox" name="beatles" value="P" /> Paul</label></li>
- <li><label><input type="checkbox" name="beatles" value="G" /> George</label></li>
- <li><label><input type="checkbox" name="beatles" value="R" /> Ringo</label></li>
+ <li><label><input checked type="checkbox" name="beatles" value="J"> John</label></li>
+ <li><label><input type="checkbox" name="beatles" value="P"> Paul</label></li>
+ <li><label><input type="checkbox" name="beatles" value="G"> George</label></li>
+ <li><label><input type="checkbox" name="beatles" value="R"> Ringo</label></li>
</ul>"""
))
def test_render_value_multiple(self):
self.check_html(self.widget(choices=self.beatles), 'beatles', ['J', 'P'], html=(
"""<ul>
- <li><label><input checked type="checkbox" name="beatles" value="J" /> John</label></li>
- <li><label><input checked type="checkbox" name="beatles" value="P" /> Paul</label></li>
- <li><label><input type="checkbox" name="beatles" value="G" /> George</label></li>
- <li><label><input type="checkbox" name="beatles" value="R" /> Ringo</label></li>
+ <li><label><input checked type="checkbox" name="beatles" value="J"> John</label></li>
+ <li><label><input checked type="checkbox" name="beatles" value="P"> Paul</label></li>
+ <li><label><input type="checkbox" name="beatles" value="G"> George</label></li>
+ <li><label><input type="checkbox" name="beatles" value="R"> Ringo</label></li>
</ul>"""
))
@@ -36,10 +36,10 @@ class CheckboxSelectMultipleTest(WidgetTest):
"""
self.check_html(self.widget(choices=self.beatles), 'beatles', None, html=(
"""<ul>
- <li><label><input type="checkbox" name="beatles" value="J" /> John</label></li>
- <li><label><input type="checkbox" name="beatles" value="P" /> Paul</label></li>
- <li><label><input type="checkbox" name="beatles" value="G" /> George</label></li>
- <li><label><input type="checkbox" name="beatles" value="R" /> Ringo</label></li>
+ <li><label><input type="checkbox" name="beatles" value="J"> John</label></li>
+ <li><label><input type="checkbox" name="beatles" value="P"> Paul</label></li>
+ <li><label><input type="checkbox" name="beatles" value="G"> George</label></li>
+ <li><label><input type="checkbox" name="beatles" value="R"> Ringo</label></li>
</ul>"""
))
@@ -52,25 +52,25 @@ class CheckboxSelectMultipleTest(WidgetTest):
html = """
<ul id="media">
<li>
- <label for="media_0"><input id="media_0" name="nestchoice" type="checkbox" value="unknown" /> Unknown</label>
+ <label for="media_0"><input id="media_0" name="nestchoice" type="checkbox" value="unknown"> Unknown</label>
</li>
<li>Audio<ul id="media_1">
<li>
<label for="media_1_0">
- <input checked id="media_1_0" name="nestchoice" type="checkbox" value="vinyl" /> Vinyl
+ <input checked id="media_1_0" name="nestchoice" type="checkbox" value="vinyl"> Vinyl
</label>
</li>
<li>
- <label for="media_1_1"><input id="media_1_1" name="nestchoice" type="checkbox" value="cd" /> CD</label>
+ <label for="media_1_1"><input id="media_1_1" name="nestchoice" type="checkbox" value="cd"> CD</label>
</li>
</ul></li>
<li>Video<ul id="media_2">
<li>
- <label for="media_2_0"><input id="media_2_0" name="nestchoice" type="checkbox" value="vhs" /> VHS</label>
+ <label for="media_2_0"><input id="media_2_0" name="nestchoice" type="checkbox" value="vhs"> VHS</label>
</li>
<li>
<label for="media_2_1">
- <input checked id="media_2_1" name="nestchoice" type="checkbox" value="dvd" /> DVD
+ <input checked id="media_2_1" name="nestchoice" type="checkbox" value="dvd"> DVD
</label>
</li>
</ul></li>
@@ -90,25 +90,25 @@ class CheckboxSelectMultipleTest(WidgetTest):
html = """
<ul>
<li>
- <label><input name="nestchoice" type="checkbox" value="unknown" /> Unknown</label>
+ <label><input name="nestchoice" type="checkbox" value="unknown"> Unknown</label>
</li>
<li>Audio<ul>
<li>
<label>
- <input checked name="nestchoice" type="checkbox" value="vinyl" /> Vinyl
+ <input checked name="nestchoice" type="checkbox" value="vinyl"> Vinyl
</label>
</li>
<li>
- <label><input name="nestchoice" type="checkbox" value="cd" /> CD</label>
+ <label><input name="nestchoice" type="checkbox" value="cd"> CD</label>
</li>
</ul></li>
<li>Video<ul>
<li>
- <label><input name="nestchoice" type="checkbox" value="vhs" /> VHS</label>
+ <label><input name="nestchoice" type="checkbox" value="vhs"> VHS</label>
</li>
<li>
<label>
- <input checked name="nestchoice" type="checkbox" value="dvd" /> DVD
+ <input checked name="nestchoice" type="checkbox" value="dvd"> DVD
</label>
</li>
</ul></li>
@@ -124,11 +124,11 @@ class CheckboxSelectMultipleTest(WidgetTest):
html = """
<ul id="abc">
<li>
- <label for="abc_0"><input checked type="checkbox" name="letters" value="a" id="abc_0" /> A</label>
+ <label for="abc_0"><input checked type="checkbox" name="letters" value="a" id="abc_0"> A</label>
</li>
- <li><label for="abc_1"><input type="checkbox" name="letters" value="b" id="abc_1" /> B</label></li>
+ <li><label for="abc_1"><input type="checkbox" name="letters" value="b" id="abc_1"> B</label></li>
<li>
- <label for="abc_2"><input checked type="checkbox" name="letters" value="c" id="abc_2" /> C</label>
+ <label for="abc_2"><input checked type="checkbox" name="letters" value="c" id="abc_2"> C</label>
</li>
</ul>
"""
@@ -142,11 +142,11 @@ class CheckboxSelectMultipleTest(WidgetTest):
html = """
<ul id="abc">
<li>
- <label for="abc_0"><input checked type="checkbox" name="letters" value="a" id="abc_0" /> A</label>
+ <label for="abc_0"><input checked type="checkbox" name="letters" value="a" id="abc_0"> A</label>
</li>
- <li><label for="abc_1"><input type="checkbox" name="letters" value="b" id="abc_1" /> B</label></li>
+ <li><label for="abc_1"><input type="checkbox" name="letters" value="b" id="abc_1"> B</label></li>
<li>
- <label for="abc_2"><input checked type="checkbox" name="letters" value="c" id="abc_2" /> C</label>
+ <label for="abc_2"><input checked type="checkbox" name="letters" value="c" id="abc_2"> C</label>
</li>
</ul>
"""
@@ -161,9 +161,9 @@ class CheckboxSelectMultipleTest(WidgetTest):
]
html = """
<ul>
- <li><label><input type="checkbox" name="numbers" value="1" /> One</label></li>
- <li><label><input type="checkbox" name="numbers" value="1000" /> One thousand</label></li>
- <li><label><input type="checkbox" name="numbers" value="1000000" /> One million</label></li>
+ <li><label><input type="checkbox" name="numbers" value="1"> One</label></li>
+ <li><label><input type="checkbox" name="numbers" value="1000"> One thousand</label></li>
+ <li><label><input type="checkbox" name="numbers" value="1000000"> One million</label></li>
</ul>
"""
self.check_html(self.widget(choices=choices), 'numbers', None, html=html)
@@ -174,8 +174,8 @@ class CheckboxSelectMultipleTest(WidgetTest):
]
html = """
<ul>
- <li><label><input type="checkbox" name="times" value="00:00:00" /> midnight</label></li>
- <li><label><input type="checkbox" name="times" value="12:00:00" /> noon</label></li>
+ <li><label><input type="checkbox" name="times" value="00:00:00"> midnight</label></li>
+ <li><label><input type="checkbox" name="times" value="12:00:00"> noon</label></li>
</ul>
"""
self.check_html(self.widget(choices=choices), 'times', None, html=html)
diff --git a/tests/forms_tests/widget_tests/test_clearablefileinput.py b/tests/forms_tests/widget_tests/test_clearablefileinput.py
index f338269d09..2ba376db8a 100644
--- a/tests/forms_tests/widget_tests/test_clearablefileinput.py
+++ b/tests/forms_tests/widget_tests/test_clearablefileinput.py
@@ -26,9 +26,9 @@ class ClearableFileInputTest(WidgetTest):
self.check_html(self.widget, 'myfile', FakeFieldFile(), html=(
"""
Currently: <a href="something">something</a>
- <input type="checkbox" name="myfile-clear" id="myfile-clear_id" />
- <label for="myfile-clear_id">Clear</label><br />
- Change: <input type="file" name="myfile" />
+ <input type="checkbox" name="myfile-clear" id="myfile-clear_id">
+ <label for="myfile-clear_id">Clear</label><br>
+ Change: <input type="file" name="myfile">
"""
))
@@ -47,9 +47,9 @@ class ClearableFileInputTest(WidgetTest):
"""
Currently: <a href="something?chapter=1&amp;sect=2&amp;copy=3&amp;lang=en">
something&lt;div onclick=&quot;alert(&#39;oops&#39;)&quot;&gt;.jpg</a>
- <input type="checkbox" name="my&lt;div&gt;file-clear" id="my&lt;div&gt;file-clear_id" />
- <label for="my&lt;div&gt;file-clear_id">Clear</label><br />
- Change: <input type="file" name="my&lt;div&gt;file" />
+ <input type="checkbox" name="my&lt;div&gt;file-clear" id="my&lt;div&gt;file-clear_id">
+ <label for="my&lt;div&gt;file-clear_id">Clear</label><br>
+ Change: <input type="file" name="my&lt;div&gt;file">
"""
))
@@ -62,8 +62,8 @@ class ClearableFileInputTest(WidgetTest):
widget.is_required = True
self.check_html(widget, 'myfile', FakeFieldFile(), html=(
"""
- Currently: <a href="something">something</a> <br />
- Change: <input type="file" name="myfile" />
+ Currently: <a href="something">something</a> <br>
+ Change: <input type="file" name="myfile">
"""
))
@@ -72,7 +72,7 @@ class ClearableFileInputTest(WidgetTest):
A ClearableFileInput instantiated with no initial value does not render
a clear checkbox.
"""
- self.check_html(self.widget, 'myfile', None, html='<input type="file" name="myfile" />')
+ self.check_html(self.widget, 'myfile', None, html='<input type="file" name="myfile">')
def test_render_as_subwidget(self):
"""A ClearableFileInput as a subwidget of MultiWidget."""
@@ -80,9 +80,9 @@ class ClearableFileInputTest(WidgetTest):
self.check_html(widget, 'myfile', [FakeFieldFile()], html=(
"""
Currently: <a href="something">something</a>
- <input type="checkbox" name="myfile_0-clear" id="myfile_0-clear_id" />
- <label for="myfile_0-clear_id">Clear</label><br />
- Change: <input type="file" name="myfile_0" />
+ <input type="checkbox" name="myfile_0-clear" id="myfile_0-clear_id">
+ <label for="myfile_0-clear_id">Clear</label><br>
+ Change: <input type="file" name="myfile_0">
"""
))
@@ -148,7 +148,7 @@ class ClearableFileInputTest(WidgetTest):
return 'value'
html = self.widget.render('myfile', NoURLFieldFile())
- self.assertHTMLEqual(html, '<input name="myfile" type="file" />')
+ self.assertHTMLEqual(html, '<input name="myfile" type="file">')
def test_use_required_attribute(self):
# False when initial data exists. The file input is left blank by the
diff --git a/tests/forms_tests/widget_tests/test_dateinput.py b/tests/forms_tests/widget_tests/test_dateinput.py
index 3cf15fed8a..8fae6c672a 100644
--- a/tests/forms_tests/widget_tests/test_dateinput.py
+++ b/tests/forms_tests/widget_tests/test_dateinput.py
@@ -11,15 +11,15 @@ class DateInputTest(WidgetTest):
widget = DateInput()
def test_render_none(self):
- self.check_html(self.widget, 'date', None, html='<input type="text" name="date" />')
+ self.check_html(self.widget, 'date', None, html='<input type="text" name="date">')
def test_render_value(self):
d = date(2007, 9, 17)
self.assertEqual(str(d), '2007-09-17')
- self.check_html(self.widget, 'date', d, html='<input type="text" name="date" value="2007-09-17" />')
+ self.check_html(self.widget, 'date', d, html='<input type="text" name="date" value="2007-09-17">')
self.check_html(self.widget, 'date', date(2007, 9, 17), html=(
- '<input type="text" name="date" value="2007-09-17" />'
+ '<input type="text" name="date" value="2007-09-17">'
))
def test_string(self):
@@ -27,7 +27,7 @@ class DateInputTest(WidgetTest):
Should be able to initialize from a string value.
"""
self.check_html(self.widget, 'date', '2007-09-17', html=(
- '<input type="text" name="date" value="2007-09-17" />'
+ '<input type="text" name="date" value="2007-09-17">'
))
def test_format(self):
@@ -36,12 +36,12 @@ class DateInputTest(WidgetTest):
"""
d = date(2007, 9, 17)
widget = DateInput(format='%d/%m/%Y', attrs={'type': 'date'})
- self.check_html(widget, 'date', d, html='<input type="date" name="date" value="17/09/2007" />')
+ self.check_html(widget, 'date', d, html='<input type="date" name="date" value="17/09/2007">')
@override_settings(USE_L10N=True)
@translation.override('de-at')
def test_l10n(self):
self.check_html(
self.widget, 'date', date(2007, 9, 17),
- html='<input type="text" name="date" value="17.09.2007" />',
+ html='<input type="text" name="date" value="17.09.2007">',
)
diff --git a/tests/forms_tests/widget_tests/test_datetimeinput.py b/tests/forms_tests/widget_tests/test_datetimeinput.py
index 50fd7f5442..682ded3c84 100644
--- a/tests/forms_tests/widget_tests/test_datetimeinput.py
+++ b/tests/forms_tests/widget_tests/test_datetimeinput.py
@@ -11,7 +11,7 @@ class DateTimeInputTest(WidgetTest):
widget = DateTimeInput()
def test_render_none(self):
- self.check_html(self.widget, 'date', None, '<input type="text" name="date" />')
+ self.check_html(self.widget, 'date', None, '<input type="text" name="date">')
def test_render_value(self):
"""
@@ -20,13 +20,13 @@ class DateTimeInputTest(WidgetTest):
d = datetime(2007, 9, 17, 12, 51, 34, 482548)
self.assertEqual(str(d), '2007-09-17 12:51:34.482548')
self.check_html(self.widget, 'date', d, html=(
- '<input type="text" name="date" value="2007-09-17 12:51:34" />'
+ '<input type="text" name="date" value="2007-09-17 12:51:34">'
))
self.check_html(self.widget, 'date', datetime(2007, 9, 17, 12, 51, 34), html=(
- '<input type="text" name="date" value="2007-09-17 12:51:34" />'
+ '<input type="text" name="date" value="2007-09-17 12:51:34">'
))
self.check_html(self.widget, 'date', datetime(2007, 9, 17, 12, 51), html=(
- '<input type="text" name="date" value="2007-09-17 12:51:00" />'
+ '<input type="text" name="date" value="2007-09-17 12:51:00">'
))
def test_render_formatted(self):
@@ -37,14 +37,14 @@ class DateTimeInputTest(WidgetTest):
format='%d/%m/%Y %H:%M', attrs={'type': 'datetime'},
)
d = datetime(2007, 9, 17, 12, 51, 34, 482548)
- self.check_html(widget, 'date', d, html='<input type="datetime" name="date" value="17/09/2007 12:51" />')
+ self.check_html(widget, 'date', d, html='<input type="datetime" name="date" value="17/09/2007 12:51">')
@override_settings(USE_L10N=True)
@translation.override('de-at')
def test_l10n(self):
d = datetime(2007, 9, 17, 12, 51, 34, 482548)
self.check_html(self.widget, 'date', d, html=(
- '<input type="text" name="date" value="17.09.2007 12:51:34" />'
+ '<input type="text" name="date" value="17.09.2007 12:51:34">'
))
@override_settings(USE_L10N=True)
@@ -54,10 +54,10 @@ class DateTimeInputTest(WidgetTest):
with self.settings(USE_L10N=False):
self.check_html(
self.widget, 'date', d,
- html='<input type="text" name="date" value="2007-09-17 12:51:34" />',
+ html='<input type="text" name="date" value="2007-09-17 12:51:34">',
)
with translation.override('es'):
self.check_html(
self.widget, 'date', d,
- html='<input type="text" name="date" value="17/09/2007 12:51:34" />',
+ html='<input type="text" name="date" value="17/09/2007 12:51:34">',
)
diff --git a/tests/forms_tests/widget_tests/test_fileinput.py b/tests/forms_tests/widget_tests/test_fileinput.py
index 6e96dc7b5f..bbd7c7fe52 100644
--- a/tests/forms_tests/widget_tests/test_fileinput.py
+++ b/tests/forms_tests/widget_tests/test_fileinput.py
@@ -11,9 +11,9 @@ class FileInputTest(WidgetTest):
FileInput widgets never render the value attribute. The old value
isn't useful if a form is updated or an error occurred.
"""
- self.check_html(self.widget, 'email', 'test@example.com', html='<input type="file" name="email" />')
- self.check_html(self.widget, 'email', '', html='<input type="file" name="email" />')
- self.check_html(self.widget, 'email', None, html='<input type="file" name="email" />')
+ self.check_html(self.widget, 'email', 'test@example.com', html='<input type="file" name="email">')
+ self.check_html(self.widget, 'email', '', html='<input type="file" name="email">')
+ self.check_html(self.widget, 'email', None, html='<input type="file" name="email">')
def test_value_omitted_from_data(self):
self.assertIs(self.widget.value_omitted_from_data({}, {}, 'field'), True)
diff --git a/tests/forms_tests/widget_tests/test_hiddeninput.py b/tests/forms_tests/widget_tests/test_hiddeninput.py
index d1604a31e4..a7d036410c 100644
--- a/tests/forms_tests/widget_tests/test_hiddeninput.py
+++ b/tests/forms_tests/widget_tests/test_hiddeninput.py
@@ -7,7 +7,7 @@ class HiddenInputTest(WidgetTest):
widget = HiddenInput()
def test_render(self):
- self.check_html(self.widget, 'email', '', html='<input type="hidden" name="email" />')
+ self.check_html(self.widget, 'email', '', html='<input type="hidden" name="email">')
def test_use_required_attribute(self):
# Always False to avoid browser validation on inputs hidden from the
diff --git a/tests/forms_tests/widget_tests/test_input.py b/tests/forms_tests/widget_tests/test_input.py
index e773d94d8a..8be971826e 100644
--- a/tests/forms_tests/widget_tests/test_input.py
+++ b/tests/forms_tests/widget_tests/test_input.py
@@ -8,8 +8,8 @@ class InputTests(WidgetTest):
def test_attrs_with_type(self):
attrs = {'type': 'date'}
widget = Input(attrs)
- self.check_html(widget, 'name', 'value', '<input type="date" name="name" value="value" />')
+ self.check_html(widget, 'name', 'value', '<input type="date" name="name" value="value">')
# reuse the same attrs for another widget
- self.check_html(Input(attrs), 'name', 'value', '<input type="date" name="name" value="value" />')
+ self.check_html(Input(attrs), 'name', 'value', '<input type="date" name="name" value="value">')
attrs['type'] = 'number' # shouldn't change the widget type
- self.check_html(widget, 'name', 'value', '<input type="date" name="name" value="value" />')
+ self.check_html(widget, 'name', 'value', '<input type="date" name="name" value="value">')
diff --git a/tests/forms_tests/widget_tests/test_multiplehiddeninput.py b/tests/forms_tests/widget_tests/test_multiplehiddeninput.py
index d1c1ae6fa5..37d54174ee 100644
--- a/tests/forms_tests/widget_tests/test_multiplehiddeninput.py
+++ b/tests/forms_tests/widget_tests/test_multiplehiddeninput.py
@@ -9,30 +9,30 @@ class MultipleHiddenInputTest(WidgetTest):
def test_render_single(self):
self.check_html(
self.widget, 'email', ['test@example.com'],
- html='<input type="hidden" name="email" value="test@example.com" />',
+ html='<input type="hidden" name="email" value="test@example.com">',
)
def test_render_multiple(self):
self.check_html(
self.widget, 'email', ['test@example.com', 'foo@example.com'],
html=(
- '<input type="hidden" name="email" value="test@example.com" />\n'
- '<input type="hidden" name="email" value="foo@example.com" />'
+ '<input type="hidden" name="email" value="test@example.com">\n'
+ '<input type="hidden" name="email" value="foo@example.com">'
),
)
def test_render_attrs(self):
self.check_html(
self.widget, 'email', ['test@example.com'], attrs={'class': 'fun'},
- html='<input type="hidden" name="email" value="test@example.com" class="fun" />',
+ html='<input type="hidden" name="email" value="test@example.com" class="fun">',
)
def test_render_attrs_multiple(self):
self.check_html(
self.widget, 'email', ['test@example.com', 'foo@example.com'], attrs={'class': 'fun'},
html=(
- '<input type="hidden" name="email" value="test@example.com" class="fun" />\n'
- '<input type="hidden" name="email" value="foo@example.com" class="fun" />'
+ '<input type="hidden" name="email" value="test@example.com" class="fun">\n'
+ '<input type="hidden" name="email" value="foo@example.com" class="fun">'
),
)
@@ -41,18 +41,18 @@ class MultipleHiddenInputTest(WidgetTest):
self.check_html(widget, 'email', [], '')
self.check_html(
widget, 'email', ['foo@example.com'],
- html='<input type="hidden" class="fun" value="foo@example.com" name="email" />',
+ html='<input type="hidden" class="fun" value="foo@example.com" name="email">',
)
self.check_html(
widget, 'email', ['foo@example.com', 'test@example.com'],
html=(
- '<input type="hidden" class="fun" value="foo@example.com" name="email" />\n'
- '<input type="hidden" class="fun" value="test@example.com" name="email" />'
+ '<input type="hidden" class="fun" value="foo@example.com" name="email">\n'
+ '<input type="hidden" class="fun" value="test@example.com" name="email">'
),
)
self.check_html(
widget, 'email', ['foo@example.com'], attrs={'class': 'special'},
- html='<input type="hidden" class="special" value="foo@example.com" name="email" />',
+ html='<input type="hidden" class="special" value="foo@example.com" name="email">',
)
def test_render_empty(self):
@@ -68,8 +68,8 @@ class MultipleHiddenInputTest(WidgetTest):
self.check_html(
self.widget, 'letters', ['a', 'b', 'c'], attrs={'id': 'hideme'},
html=(
- '<input type="hidden" name="letters" value="a" id="hideme_0" />\n'
- '<input type="hidden" name="letters" value="b" id="hideme_1" />\n'
- '<input type="hidden" name="letters" value="c" id="hideme_2" />'
+ '<input type="hidden" name="letters" value="a" id="hideme_0">\n'
+ '<input type="hidden" name="letters" value="b" id="hideme_1">\n'
+ '<input type="hidden" name="letters" value="c" id="hideme_2">'
),
)
diff --git a/tests/forms_tests/widget_tests/test_multiwidget.py b/tests/forms_tests/widget_tests/test_multiwidget.py
index bce806231d..783eb78b85 100644
--- a/tests/forms_tests/widget_tests/test_multiwidget.py
+++ b/tests/forms_tests/widget_tests/test_multiwidget.py
@@ -88,16 +88,16 @@ class MultiWidgetTest(WidgetTest):
)
)
self.check_html(widget, 'name', ['john', 'lennon'], html=(
- '<input type="text" class="big" value="john" name="name_0" />'
- '<input type="text" class="small" value="lennon" name="name_1" />'
+ '<input type="text" class="big" value="john" name="name_0">'
+ '<input type="text" class="small" value="lennon" name="name_1">'
))
self.check_html(widget, 'name', 'john__lennon', html=(
- '<input type="text" class="big" value="john" name="name_0" />'
- '<input type="text" class="small" value="lennon" name="name_1" />'
+ '<input type="text" class="big" value="john" name="name_0">'
+ '<input type="text" class="small" value="lennon" name="name_1">'
))
self.check_html(widget, 'name', 'john__lennon', attrs={'id': 'foo'}, html=(
- '<input id="foo_0" type="text" class="big" value="john" name="name_0" />'
- '<input id="foo_1" type="text" class="small" value="lennon" name="name_1" />'
+ '<input id="foo_0" type="text" class="big" value="john" name="name_0">'
+ '<input id="foo_1" type="text" class="small" value="lennon" name="name_1">'
))
def test_constructor_attrs(self):
@@ -109,21 +109,21 @@ class MultiWidgetTest(WidgetTest):
attrs={'id': 'bar'},
)
self.check_html(widget, 'name', ['john', 'lennon'], html=(
- '<input id="bar_0" type="text" class="big" value="john" name="name_0" />'
- '<input id="bar_1" type="text" class="small" value="lennon" name="name_1" />'
+ '<input id="bar_0" type="text" class="big" value="john" name="name_0">'
+ '<input id="bar_1" type="text" class="small" value="lennon" name="name_1">'
))
def test_constructor_attrs_with_type(self):
attrs = {'type': 'number'}
widget = MyMultiWidget(widgets=(TextInput, TextInput()), attrs=attrs)
self.check_html(widget, 'code', ['1', '2'], html=(
- '<input type="number" value="1" name="code_0" />'
- '<input type="number" value="2" name="code_1" />'
+ '<input type="number" value="1" name="code_0">'
+ '<input type="number" value="2" name="code_1">'
))
widget = MyMultiWidget(widgets=(TextInput(attrs), TextInput(attrs)), attrs={'class': 'bar'})
self.check_html(widget, 'code', ['1', '2'], html=(
- '<input type="number" value="1" name="code_0" class="bar" />'
- '<input type="number" value="2" name="code_1" class="bar" />'
+ '<input type="number" value="1" name="code_0" class="bar">'
+ '<input type="number" value="2" name="code_1" class="bar">'
))
def test_value_omitted_from_data(self):
@@ -154,23 +154,23 @@ class MultiWidgetTest(WidgetTest):
widget = ComplexMultiWidget()
self.check_html(widget, 'name', 'some text,JP,2007-04-25 06:24:00', html=(
"""
- <input type="text" name="name_0" value="some text" />
+ <input type="text" name="name_0" value="some text">
<select multiple name="name_1">
<option value="J" selected>John</option>
<option value="P" selected>Paul</option>
<option value="G">George</option>
<option value="R">Ringo</option>
</select>
- <input type="text" name="name_2_0" value="2007-04-25" />
- <input type="text" name="name_2_1" value="06:24:00" />
+ <input type="text" name="name_2_0" value="2007-04-25">
+ <input type="text" name="name_2_1" value="06:24:00">
"""
))
def test_no_whitespace_between_widgets(self):
widget = MyMultiWidget(widgets=(TextInput, TextInput()))
self.check_html(widget, 'code', None, html=(
- '<input type="text" name="code_0" />'
- '<input type="text" name="code_1" />'
+ '<input type="text" name="code_0">'
+ '<input type="text" name="code_1">'
), strict=True)
def test_deepcopy(self):
diff --git a/tests/forms_tests/widget_tests/test_numberinput.py b/tests/forms_tests/widget_tests/test_numberinput.py
index 95a0a9250a..40bd94df6e 100644
--- a/tests/forms_tests/widget_tests/test_numberinput.py
+++ b/tests/forms_tests/widget_tests/test_numberinput.py
@@ -11,5 +11,5 @@ class NumberInputTests(WidgetTest):
widget = NumberInput(attrs={'max': 12345, 'min': 1234, 'step': 9999})
self.check_html(
widget, 'name', 'value',
- '<input type="number" name="name" value="value" max="12345" min="1234" step="9999" />'
+ '<input type="number" name="name" value="value" max="12345" min="1234" step="9999">'
)
diff --git a/tests/forms_tests/widget_tests/test_passwordinput.py b/tests/forms_tests/widget_tests/test_passwordinput.py
index 4cb7c4ef47..ecbe274d69 100644
--- a/tests/forms_tests/widget_tests/test_passwordinput.py
+++ b/tests/forms_tests/widget_tests/test_passwordinput.py
@@ -7,10 +7,10 @@ class PasswordInputTest(WidgetTest):
widget = PasswordInput()
def test_render(self):
- self.check_html(self.widget, 'password', '', html='<input type="password" name="password" />')
+ self.check_html(self.widget, 'password', '', html='<input type="password" name="password">')
def test_render_ignore_value(self):
- self.check_html(self.widget, 'password', 'secret', html='<input type="password" name="password" />')
+ self.check_html(self.widget, 'password', 'secret', html='<input type="password" name="password">')
def test_render_value_true(self):
"""
@@ -18,9 +18,9 @@ class PasswordInputTest(WidgetTest):
render its value. For security reasons, this is off by default.
"""
widget = PasswordInput(render_value=True)
- self.check_html(widget, 'password', '', html='<input type="password" name="password" />')
- self.check_html(widget, 'password', None, html='<input type="password" name="password" />')
+ self.check_html(widget, 'password', '', html='<input type="password" name="password">')
+ self.check_html(widget, 'password', None, html='<input type="password" name="password">')
self.check_html(
widget, 'password', 'test@example.com',
- html='<input type="password" name="password" value="test@example.com" />',
+ html='<input type="password" name="password" value="test@example.com">',
)
diff --git a/tests/forms_tests/widget_tests/test_radioselect.py b/tests/forms_tests/widget_tests/test_radioselect.py
index 05f980eb36..d0a70c7953 100644
--- a/tests/forms_tests/widget_tests/test_radioselect.py
+++ b/tests/forms_tests/widget_tests/test_radioselect.py
@@ -13,11 +13,11 @@ class RadioSelectTest(WidgetTest):
choices = (('', '------'),) + self.beatles
self.check_html(self.widget(choices=choices), 'beatle', 'J', html=(
"""<ul>
- <li><label><input type="radio" name="beatle" value="" /> ------</label></li>
- <li><label><input checked type="radio" name="beatle" value="J" /> John</label></li>
- <li><label><input type="radio" name="beatle" value="P" /> Paul</label></li>
- <li><label><input type="radio" name="beatle" value="G" /> George</label></li>
- <li><label><input type="radio" name="beatle" value="R" /> Ringo</label></li>
+ <li><label><input type="radio" name="beatle" value=""> ------</label></li>
+ <li><label><input checked type="radio" name="beatle" value="J"> John</label></li>
+ <li><label><input type="radio" name="beatle" value="P"> Paul</label></li>
+ <li><label><input type="radio" name="beatle" value="G"> George</label></li>
+ <li><label><input type="radio" name="beatle" value="R"> Ringo</label></li>
</ul>"""
))
@@ -30,19 +30,19 @@ class RadioSelectTest(WidgetTest):
html = """
<ul id="media">
<li>
- <label for="media_0"><input id="media_0" name="nestchoice" type="radio" value="unknown" /> Unknown</label>
+ <label for="media_0"><input id="media_0" name="nestchoice" type="radio" value="unknown"> Unknown</label>
</li>
<li>Audio<ul id="media_1">
<li>
- <label for="media_1_0"><input id="media_1_0" name="nestchoice" type="radio" value="vinyl" /> Vinyl</label>
+ <label for="media_1_0"><input id="media_1_0" name="nestchoice" type="radio" value="vinyl"> Vinyl</label>
</li>
- <li><label for="media_1_1"><input id="media_1_1" name="nestchoice" type="radio" value="cd" /> CD</label></li>
+ <li><label for="media_1_1"><input id="media_1_1" name="nestchoice" type="radio" value="cd"> CD</label></li>
</ul></li>
<li>Video<ul id="media_2">
- <li><label for="media_2_0"><input id="media_2_0" name="nestchoice" type="radio" value="vhs" /> VHS</label></li>
+ <li><label for="media_2_0"><input id="media_2_0" name="nestchoice" type="radio" value="vhs"> VHS</label></li>
<li>
<label for="media_2_1">
- <input checked id="media_2_1" name="nestchoice" type="radio" value="dvd" /> DVD
+ <input checked id="media_2_1" name="nestchoice" type="radio" value="dvd"> DVD
</label>
</li>
</ul></li>
@@ -62,11 +62,11 @@ class RadioSelectTest(WidgetTest):
html = """
<ul id="foo">
<li>
- <label for="foo_0"><input checked type="radio" id="foo_0" value="J" name="beatle" /> John</label>
+ <label for="foo_0"><input checked type="radio" id="foo_0" value="J" name="beatle"> John</label>
</li>
- <li><label for="foo_1"><input type="radio" id="foo_1" value="P" name="beatle" /> Paul</label></li>
- <li><label for="foo_2"><input type="radio" id="foo_2" value="G" name="beatle" /> George</label></li>
- <li><label for="foo_3"><input type="radio" id="foo_3" value="R" name="beatle" /> Ringo</label></li>
+ <li><label for="foo_1"><input type="radio" id="foo_1" value="P" name="beatle"> Paul</label></li>
+ <li><label for="foo_2"><input type="radio" id="foo_2" value="G" name="beatle"> George</label></li>
+ <li><label for="foo_3"><input type="radio" id="foo_3" value="R" name="beatle"> Ringo</label></li>
</ul>
"""
self.check_html(widget, 'beatle', 'J', html=html)
@@ -79,11 +79,11 @@ class RadioSelectTest(WidgetTest):
html = """
<ul id="bar">
<li>
- <label for="bar_0"><input checked type="radio" id="bar_0" value="J" name="beatle" /> John</label>
+ <label for="bar_0"><input checked type="radio" id="bar_0" value="J" name="beatle"> John</label>
</li>
- <li><label for="bar_1"><input type="radio" id="bar_1" value="P" name="beatle" /> Paul</label></li>
- <li><label for="bar_2"><input type="radio" id="bar_2" value="G" name="beatle" /> George</label></li>
- <li><label for="bar_3"><input type="radio" id="bar_3" value="R" name="beatle" /> Ringo</label></li>
+ <li><label for="bar_1"><input type="radio" id="bar_1" value="P" name="beatle"> Paul</label></li>
+ <li><label for="bar_2"><input type="radio" id="bar_2" value="G" name="beatle"> George</label></li>
+ <li><label for="bar_3"><input type="radio" id="bar_3" value="R" name="beatle"> Ringo</label></li>
</ul>
"""
self.check_html(self.widget(choices=self.beatles), 'beatle', 'J', attrs={'id': 'bar'}, html=html)
@@ -95,10 +95,10 @@ class RadioSelectTest(WidgetTest):
"""
html = """
<ul class="bar">
- <li><label><input checked type="radio" class="bar" value="J" name="beatle" /> John</label></li>
- <li><label><input type="radio" class="bar" value="P" name="beatle" /> Paul</label></li>
- <li><label><input type="radio" class="bar" value="G" name="beatle" /> George</label></li>
- <li><label><input type="radio" class="bar" value="R" name="beatle" /> Ringo</label></li>
+ <li><label><input checked type="radio" class="bar" value="J" name="beatle"> John</label></li>
+ <li><label><input type="radio" class="bar" value="P" name="beatle"> Paul</label></li>
+ <li><label><input type="radio" class="bar" value="G" name="beatle"> George</label></li>
+ <li><label><input type="radio" class="bar" value="R" name="beatle"> Ringo</label></li>
</ul>
"""
self.check_html(self.widget(choices=self.beatles), 'beatle', 'J', attrs={'class': 'bar'}, html=html)
@@ -112,9 +112,9 @@ class RadioSelectTest(WidgetTest):
]
html = """
<ul>
- <li><label><input type="radio" name="number" value="1" /> One</label></li>
- <li><label><input type="radio" name="number" value="1000" /> One thousand</label></li>
- <li><label><input type="radio" name="number" value="1000000" /> One million</label></li>
+ <li><label><input type="radio" name="number" value="1"> One</label></li>
+ <li><label><input type="radio" name="number" value="1000"> One thousand</label></li>
+ <li><label><input type="radio" name="number" value="1000000"> One million</label></li>
</ul>
"""
self.check_html(self.widget(choices=choices), 'number', None, html=html)
@@ -125,8 +125,8 @@ class RadioSelectTest(WidgetTest):
]
html = """
<ul>
- <li><label><input type="radio" name="time" value="00:00:00" /> midnight</label></li>
- <li><label><input type="radio" name="time" value="12:00:00" /> noon</label></li>
+ <li><label><input type="radio" name="time" value="00:00:00"> midnight</label></li>
+ <li><label><input type="radio" name="time" value="12:00:00"> noon</label></li>
</ul>
"""
self.check_html(self.widget(choices=choices), 'time', None, html=html)
diff --git a/tests/forms_tests/widget_tests/test_splitdatetimewidget.py b/tests/forms_tests/widget_tests/test_splitdatetimewidget.py
index 3b06fd5958..ebb30da148 100644
--- a/tests/forms_tests/widget_tests/test_splitdatetimewidget.py
+++ b/tests/forms_tests/widget_tests/test_splitdatetimewidget.py
@@ -10,37 +10,37 @@ class SplitDateTimeWidgetTest(WidgetTest):
def test_render_empty(self):
self.check_html(self.widget, 'date', '', html=(
- '<input type="text" name="date_0" /><input type="text" name="date_1" />'
+ '<input type="text" name="date_0"><input type="text" name="date_1">'
))
def test_render_none(self):
self.check_html(self.widget, 'date', None, html=(
- '<input type="text" name="date_0" /><input type="text" name="date_1" />'
+ '<input type="text" name="date_0"><input type="text" name="date_1">'
))
def test_render_datetime(self):
self.check_html(self.widget, 'date', datetime(2006, 1, 10, 7, 30), html=(
- '<input type="text" name="date_0" value="2006-01-10" />'
- '<input type="text" name="date_1" value="07:30:00" />'
+ '<input type="text" name="date_0" value="2006-01-10">'
+ '<input type="text" name="date_1" value="07:30:00">'
))
def test_render_date_and_time(self):
self.check_html(self.widget, 'date', [date(2006, 1, 10), time(7, 30)], html=(
- '<input type="text" name="date_0" value="2006-01-10" />'
- '<input type="text" name="date_1" value="07:30:00" />'
+ '<input type="text" name="date_0" value="2006-01-10">'
+ '<input type="text" name="date_1" value="07:30:00">'
))
def test_constructor_attrs(self):
widget = SplitDateTimeWidget(attrs={'class': 'pretty'})
self.check_html(widget, 'date', datetime(2006, 1, 10, 7, 30), html=(
- '<input type="text" class="pretty" value="2006-01-10" name="date_0" />'
- '<input type="text" class="pretty" value="07:30:00" name="date_1" />'
+ '<input type="text" class="pretty" value="2006-01-10" name="date_0">'
+ '<input type="text" class="pretty" value="07:30:00" name="date_1">'
))
def test_constructor_different_attrs(self):
html = (
- '<input type="text" class="foo" value="2006-01-10" name="date_0" />'
- '<input type="text" class="bar" value="07:30:00" name="date_1" />'
+ '<input type="text" class="foo" value="2006-01-10" name="date_0">'
+ '<input type="text" class="bar" value="07:30:00" name="date_1">'
)
widget = SplitDateTimeWidget(date_attrs={'class': 'foo'}, time_attrs={'class': 'bar'})
self.check_html(widget, 'date', datetime(2006, 1, 10, 7, 30), html=html)
@@ -58,6 +58,6 @@ class SplitDateTimeWidgetTest(WidgetTest):
date_format='%d/%m/%Y', time_format='%H:%M',
)
self.check_html(widget, 'date', datetime(2006, 1, 10, 7, 30), html=(
- '<input type="text" name="date_0" value="10/01/2006" />'
- '<input type="text" name="date_1" value="07:30" />'
+ '<input type="text" name="date_0" value="10/01/2006">'
+ '<input type="text" name="date_1" value="07:30">'
))
diff --git a/tests/forms_tests/widget_tests/test_splithiddendatetimewidget.py b/tests/forms_tests/widget_tests/test_splithiddendatetimewidget.py
index e3adb11520..dff28161a5 100644
--- a/tests/forms_tests/widget_tests/test_splithiddendatetimewidget.py
+++ b/tests/forms_tests/widget_tests/test_splithiddendatetimewidget.py
@@ -12,22 +12,22 @@ class SplitHiddenDateTimeWidgetTest(WidgetTest):
def test_render_empty(self):
self.check_html(self.widget, 'date', '', html=(
- '<input type="hidden" name="date_0" /><input type="hidden" name="date_1" />'
+ '<input type="hidden" name="date_0"><input type="hidden" name="date_1">'
))
def test_render_value(self):
d = datetime(2007, 9, 17, 12, 51, 34, 482548)
self.check_html(self.widget, 'date', d, html=(
- '<input type="hidden" name="date_0" value="2007-09-17" />'
- '<input type="hidden" name="date_1" value="12:51:34" />'
+ '<input type="hidden" name="date_0" value="2007-09-17">'
+ '<input type="hidden" name="date_1" value="12:51:34">'
))
self.check_html(self.widget, 'date', datetime(2007, 9, 17, 12, 51, 34), html=(
- '<input type="hidden" name="date_0" value="2007-09-17" />'
- '<input type="hidden" name="date_1" value="12:51:34" />'
+ '<input type="hidden" name="date_0" value="2007-09-17">'
+ '<input type="hidden" name="date_1" value="12:51:34">'
))
self.check_html(self.widget, 'date', datetime(2007, 9, 17, 12, 51), html=(
- '<input type="hidden" name="date_0" value="2007-09-17" />'
- '<input type="hidden" name="date_1" value="12:51:00" />'
+ '<input type="hidden" name="date_0" value="2007-09-17">'
+ '<input type="hidden" name="date_1" value="12:51:00">'
))
@override_settings(USE_L10N=True)
@@ -36,15 +36,15 @@ class SplitHiddenDateTimeWidgetTest(WidgetTest):
d = datetime(2007, 9, 17, 12, 51)
self.check_html(self.widget, 'date', d, html=(
"""
- <input type="hidden" name="date_0" value="17.09.2007" />
- <input type="hidden" name="date_1" value="12:51:00" />
+ <input type="hidden" name="date_0" value="17.09.2007">
+ <input type="hidden" name="date_1" value="12:51:00">
"""
))
def test_constructor_different_attrs(self):
html = (
- '<input type="hidden" class="foo" value="2006-01-10" name="date_0" />'
- '<input type="hidden" class="bar" value="07:30:00" name="date_1" />'
+ '<input type="hidden" class="foo" value="2006-01-10" name="date_0">'
+ '<input type="hidden" class="bar" value="07:30:00" name="date_1">'
)
widget = SplitHiddenDateTimeWidget(date_attrs={'class': 'foo'}, time_attrs={'class': 'bar'})
self.check_html(widget, 'date', datetime(2006, 1, 10, 7, 30), html=html)
diff --git a/tests/forms_tests/widget_tests/test_textinput.py b/tests/forms_tests/widget_tests/test_textinput.py
index 906687d971..260e86f740 100644
--- a/tests/forms_tests/widget_tests/test_textinput.py
+++ b/tests/forms_tests/widget_tests/test_textinput.py
@@ -8,14 +8,14 @@ class TextInputTest(WidgetTest):
widget = TextInput()
def test_render(self):
- self.check_html(self.widget, 'email', '', html='<input type="text" name="email" />')
+ self.check_html(self.widget, 'email', '', html='<input type="text" name="email">')
def test_render_none(self):
- self.check_html(self.widget, 'email', None, html='<input type="text" name="email" />')
+ self.check_html(self.widget, 'email', None, html='<input type="text" name="email">')
def test_render_value(self):
self.check_html(self.widget, 'email', 'test@example.com', html=(
- '<input type="text" name="email" value="test@example.com" />'
+ '<input type="text" name="email" value="test@example.com">'
))
def test_render_boolean(self):
@@ -24,22 +24,22 @@ class TextInputTest(WidgetTest):
"False").
"""
self.check_html(self.widget, 'get_spam', False, html=(
- '<input type="text" name="get_spam" value="False" />'
+ '<input type="text" name="get_spam" value="False">'
))
self.check_html(self.widget, 'get_spam', True, html=(
- '<input type="text" name="get_spam" value="True" />'
+ '<input type="text" name="get_spam" value="True">'
))
def test_render_quoted(self):
self.check_html(
self.widget, 'email', 'some "quoted" & ampersanded value',
- html='<input type="text" name="email" value="some &quot;quoted&quot; &amp; ampersanded value" />',
+ html='<input type="text" name="email" value="some &quot;quoted&quot; &amp; ampersanded value">',
)
def test_render_custom_attrs(self):
self.check_html(
self.widget, 'email', 'test@example.com', attrs={'class': 'fun'},
- html='<input type="text" name="email" value="test@example.com" class="fun" />',
+ html='<input type="text" name="email" value="test@example.com" class="fun">',
)
def test_render_unicode(self):
@@ -47,16 +47,16 @@ class TextInputTest(WidgetTest):
self.widget, 'email', 'ŠĐĆŽćžšđ', attrs={'class': 'fun'},
html=(
'<input type="text" name="email" '
- 'value="\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111" class="fun" />'
+ 'value="\u0160\u0110\u0106\u017d\u0107\u017e\u0161\u0111" class="fun">'
),
)
def test_constructor_attrs(self):
widget = TextInput(attrs={'class': 'fun', 'type': 'email'})
- self.check_html(widget, 'email', '', html='<input type="email" class="fun" name="email" />')
+ self.check_html(widget, 'email', '', html='<input type="email" class="fun" name="email">')
self.check_html(
widget, 'email', 'foo@example.com',
- html='<input type="email" class="fun" value="foo@example.com" name="email" />',
+ html='<input type="email" class="fun" value="foo@example.com" name="email">',
)
def test_attrs_precedence(self):
@@ -67,12 +67,12 @@ class TextInputTest(WidgetTest):
widget = TextInput(attrs={'class': 'pretty'})
self.check_html(
widget, 'email', '', attrs={'class': 'special'},
- html='<input type="text" class="special" name="email" />',
+ html='<input type="text" class="special" name="email">',
)
def test_attrs_safestring(self):
widget = TextInput(attrs={'onBlur': mark_safe("function('foo')")})
- self.check_html(widget, 'email', '', html='<input onBlur="function(\'foo\')" type="text" name="email" />')
+ self.check_html(widget, 'email', '', html='<input onBlur="function(\'foo\')" type="text" name="email">')
def test_use_required_attribute(self):
# Text inputs can safely trigger the browser validation.
diff --git a/tests/forms_tests/widget_tests/test_timeinput.py b/tests/forms_tests/widget_tests/test_timeinput.py
index ab355e2ec9..1a511e4cab 100644
--- a/tests/forms_tests/widget_tests/test_timeinput.py
+++ b/tests/forms_tests/widget_tests/test_timeinput.py
@@ -11,7 +11,7 @@ class TimeInputTest(WidgetTest):
widget = TimeInput()
def test_render_none(self):
- self.check_html(self.widget, 'time', None, html='<input type="text" name="time" />')
+ self.check_html(self.widget, 'time', None, html='<input type="text" name="time">')
def test_render_value(self):
"""
@@ -19,18 +19,18 @@ class TimeInputTest(WidgetTest):
"""
t = time(12, 51, 34, 482548)
self.assertEqual(str(t), '12:51:34.482548')
- self.check_html(self.widget, 'time', t, html='<input type="text" name="time" value="12:51:34" />')
+ self.check_html(self.widget, 'time', t, html='<input type="text" name="time" value="12:51:34">')
self.check_html(self.widget, 'time', time(12, 51, 34), html=(
- '<input type="text" name="time" value="12:51:34" />'
+ '<input type="text" name="time" value="12:51:34">'
))
self.check_html(self.widget, 'time', time(12, 51), html=(
- '<input type="text" name="time" value="12:51:00" />'
+ '<input type="text" name="time" value="12:51:00">'
))
def test_string(self):
"""Initializing from a string value."""
self.check_html(self.widget, 'time', '13:12:11', html=(
- '<input type="text" name="time" value="13:12:11" />'
+ '<input type="text" name="time" value="13:12:11">'
))
def test_format(self):
@@ -39,10 +39,10 @@ class TimeInputTest(WidgetTest):
"""
t = time(12, 51, 34, 482548)
widget = TimeInput(format='%H:%M', attrs={'type': 'time'})
- self.check_html(widget, 'time', t, html='<input type="time" name="time" value="12:51" />')
+ self.check_html(widget, 'time', t, html='<input type="time" name="time" value="12:51">')
@override_settings(USE_L10N=True)
@translation.override('de-at')
def test_l10n(self):
t = time(12, 51, 34, 482548)
- self.check_html(self.widget, 'time', t, html='<input type="text" name="time" value="12:51:34" />')
+ self.check_html(self.widget, 'time', t, html='<input type="text" name="time" value="12:51:34">')
diff --git a/tests/forms_tests/widget_tests/test_widget.py b/tests/forms_tests/widget_tests/test_widget.py
index f25fe1e5fe..8cde388b8f 100644
--- a/tests/forms_tests/widget_tests/test_widget.py
+++ b/tests/forms_tests/widget_tests/test_widget.py
@@ -19,8 +19,8 @@ class WidgetTests(WidgetTest):
self.assertIs(widget.value_omitted_from_data({'field': 'value'}, {}, 'field'), False)
def test_no_trailing_newline_in_attrs(self):
- self.check_html(Input(), 'name', 'value', strict=True, html='<input type="None" name="name" value="value" />')
+ self.check_html(Input(), 'name', 'value', strict=True, html='<input type="None" name="name" value="value">')
def test_attr_false_not_rendered(self):
- html = '<input type="None" name="name" value="value" />'
+ html = '<input type="None" name="name" value="value">'
self.check_html(Input(), 'name', 'value', html=html, attrs={'readonly': False})