diff options
Diffstat (limited to 'tests/forms_tests/widget_tests')
4 files changed, 27 insertions, 0 deletions
diff --git a/tests/forms_tests/widget_tests/test_checkboxselectmultiple.py b/tests/forms_tests/widget_tests/test_checkboxselectmultiple.py index 10d025e4c2..2d73f2b589 100644 --- a/tests/forms_tests/widget_tests/test_checkboxselectmultiple.py +++ b/tests/forms_tests/widget_tests/test_checkboxselectmultiple.py @@ -112,3 +112,11 @@ class CheckboxSelectMultipleTest(WidgetTest): </ul> """ self.check_html(widget, 'letters', ['a', 'c'], html=html) + + def test_use_required_attribute(self): + widget = self.widget(choices=self.beatles) + # Always False because browser validation would require all checkboxes + # to be checked instead of at least one. + self.assertIs(widget.use_required_attribute(None), False) + self.assertIs(widget.use_required_attribute([]), False) + self.assertIs(widget.use_required_attribute(['J', 'P']), False) diff --git a/tests/forms_tests/widget_tests/test_clearablefileinput.py b/tests/forms_tests/widget_tests/test_clearablefileinput.py index 720f17b035..3727d0c0df 100644 --- a/tests/forms_tests/widget_tests/test_clearablefileinput.py +++ b/tests/forms_tests/widget_tests/test_clearablefileinput.py @@ -143,3 +143,9 @@ class ClearableFileInputTest(WidgetTest): html = self.widget.render('myfile', NoURLFieldFile()) 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 + # user to keep the existing, initial value. + self.assertIs(self.widget.use_required_attribute(None), True) + self.assertIs(self.widget.use_required_attribute('resume.txt'), False) diff --git a/tests/forms_tests/widget_tests/test_hiddeninput.py b/tests/forms_tests/widget_tests/test_hiddeninput.py index 039e89d5cc..d1604a31e4 100644 --- a/tests/forms_tests/widget_tests/test_hiddeninput.py +++ b/tests/forms_tests/widget_tests/test_hiddeninput.py @@ -8,3 +8,10 @@ class HiddenInputTest(WidgetTest): def test_render(self): 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 + # user. + self.assertIs(self.widget.use_required_attribute(None), False) + self.assertIs(self.widget.use_required_attribute(''), False) + self.assertIs(self.widget.use_required_attribute('foo'), False) diff --git a/tests/forms_tests/widget_tests/test_textinput.py b/tests/forms_tests/widget_tests/test_textinput.py index 33e455a160..65b5da4e03 100644 --- a/tests/forms_tests/widget_tests/test_textinput.py +++ b/tests/forms_tests/widget_tests/test_textinput.py @@ -76,3 +76,9 @@ class TextInputTest(WidgetTest): 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" />') + + def test_use_required_attribute(self): + # Text inputs can safely trigger the browser validation. + self.assertIs(self.widget.use_required_attribute(None), True) + self.assertIs(self.widget.use_required_attribute(''), True) + self.assertIs(self.widget.use_required_attribute('resume.txt'), True) |
