From 4c30fa905d9d47b3a2ee82095b1fe56cc2ec2ab5 Mon Sep 17 00:00:00 2001 From: Preston Timmons Date: Sun, 30 Aug 2015 21:13:42 -0500 Subject: Rewrote form widget tests as proper unittests. This is preparation for landing the template-based widget rendering patch and goes a long way to making these tests more useful for future development. The old doctest heritage is strong here. --- .../widget_tests/test_multiplehiddeninput.py | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 tests/forms_tests/widget_tests/test_multiplehiddeninput.py (limited to 'tests/forms_tests/widget_tests/test_multiplehiddeninput.py') diff --git a/tests/forms_tests/widget_tests/test_multiplehiddeninput.py b/tests/forms_tests/widget_tests/test_multiplehiddeninput.py new file mode 100644 index 0000000000..d1c1ae6fa5 --- /dev/null +++ b/tests/forms_tests/widget_tests/test_multiplehiddeninput.py @@ -0,0 +1,75 @@ +from django.forms import MultipleHiddenInput + +from .base import WidgetTest + + +class MultipleHiddenInputTest(WidgetTest): + widget = MultipleHiddenInput() + + def test_render_single(self): + self.check_html( + self.widget, 'email', ['test@example.com'], + html='', + ) + + def test_render_multiple(self): + self.check_html( + self.widget, 'email', ['test@example.com', 'foo@example.com'], + html=( + '\n' + '' + ), + ) + + def test_render_attrs(self): + self.check_html( + self.widget, 'email', ['test@example.com'], attrs={'class': 'fun'}, + html='', + ) + + def test_render_attrs_multiple(self): + self.check_html( + self.widget, 'email', ['test@example.com', 'foo@example.com'], attrs={'class': 'fun'}, + html=( + '\n' + '' + ), + ) + + def test_render_attrs_constructor(self): + widget = MultipleHiddenInput(attrs={'class': 'fun'}) + self.check_html(widget, 'email', [], '') + self.check_html( + widget, 'email', ['foo@example.com'], + html='', + ) + self.check_html( + widget, 'email', ['foo@example.com', 'test@example.com'], + html=( + '\n' + '' + ), + ) + self.check_html( + widget, 'email', ['foo@example.com'], attrs={'class': 'special'}, + html='', + ) + + def test_render_empty(self): + self.check_html(self.widget, 'email', [], '') + + def test_render_none(self): + self.check_html(self.widget, 'email', None, '') + + def test_render_increment_id(self): + """ + Each input should get a separate ID. + """ + self.check_html( + self.widget, 'letters', ['a', 'b', 'c'], attrs={'id': 'hideme'}, + html=( + '\n' + '\n' + '' + ), + ) -- cgit v1.3