diff options
| author | Tim Graham <timograham@gmail.com> | 2016-09-06 17:41:54 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-09-22 12:20:58 -0400 |
| commit | 3507d4e773aa9ff2336e7230ba231c4ba6eb568f (patch) | |
| tree | 09467b4724131e91b0afe1d2f133e5e56ba068cf /tests/forms_tests/widget_tests | |
| parent | 92323d54fd6df077dc523c423c7bb2dd8dbde621 (diff) | |
Fixed #27186 -- Fixed model form default fallback for MultiWidget, FileInput, SplitDateTimeWidget, SelectDateWidget, and SplitArrayWidget.
Thanks Matt Westcott for the review.
Diffstat (limited to 'tests/forms_tests/widget_tests')
5 files changed, 35 insertions, 0 deletions
diff --git a/tests/forms_tests/widget_tests/test_checkboxinput.py b/tests/forms_tests/widget_tests/test_checkboxinput.py index 18ffd88d56..1ae6ab73b6 100644 --- a/tests/forms_tests/widget_tests/test_checkboxinput.py +++ b/tests/forms_tests/widget_tests/test_checkboxinput.py @@ -85,3 +85,7 @@ class CheckboxInputTest(WidgetTest): def test_value_from_datadict_string_int(self): value = self.widget.value_from_datadict({'testing': '0'}, {}, 'testing') self.assertIs(value, True) + + def test_value_omitted_from_data(self): + self.assertIs(self.widget.value_omitted_from_data({'field': 'value'}, {}, 'field'), False) + self.assertIs(self.widget.value_omitted_from_data({}, {}, 'field'), False) diff --git a/tests/forms_tests/widget_tests/test_fileinput.py b/tests/forms_tests/widget_tests/test_fileinput.py index eb1c9d81ed..6e96dc7b5f 100644 --- a/tests/forms_tests/widget_tests/test_fileinput.py +++ b/tests/forms_tests/widget_tests/test_fileinput.py @@ -14,3 +14,7 @@ class FileInputTest(WidgetTest): 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) + self.assertIs(self.widget.value_omitted_from_data({}, {'field': 'value'}, 'field'), False) diff --git a/tests/forms_tests/widget_tests/test_multiwidget.py b/tests/forms_tests/widget_tests/test_multiwidget.py index 5338104f5c..a7cd8e0d5d 100644 --- a/tests/forms_tests/widget_tests/test_multiwidget.py +++ b/tests/forms_tests/widget_tests/test_multiwidget.py @@ -118,6 +118,13 @@ class MultiWidgetTest(WidgetTest): '<input id="bar_1" type="text" class="small" value="lennon" name="name_1" />' )) + def test_value_omitted_from_data(self): + widget = MyMultiWidget(widgets=(TextInput(), TextInput())) + self.assertIs(widget.value_omitted_from_data({}, {}, 'field'), True) + self.assertIs(widget.value_omitted_from_data({'field_0': 'x'}, {}, 'field'), False) + self.assertIs(widget.value_omitted_from_data({'field_1': 'y'}, {}, 'field'), False) + self.assertIs(widget.value_omitted_from_data({'field_0': 'x', 'field_1': 'y'}, {}, 'field'), False) + def test_needs_multipart_true(self): """ needs_multipart_form should be True if any widgets need it. diff --git a/tests/forms_tests/widget_tests/test_selectdatewidget.py b/tests/forms_tests/widget_tests/test_selectdatewidget.py index b155c946e6..24294200c0 100644 --- a/tests/forms_tests/widget_tests/test_selectdatewidget.py +++ b/tests/forms_tests/widget_tests/test_selectdatewidget.py @@ -477,3 +477,11 @@ class SelectDateWidgetTest(WidgetTest): w.value_from_datadict({'date_year': '1899', 'date_month': '8', 'date_day': '13'}, {}, 'date'), '13-08-1899', ) + + def test_value_omitted_from_data(self): + self.assertIs(self.widget.value_omitted_from_data({}, {}, 'field'), True) + self.assertIs(self.widget.value_omitted_from_data({'field_month': '12'}, {}, 'field'), False) + self.assertIs(self.widget.value_omitted_from_data({'field_year': '2000'}, {}, 'field'), False) + self.assertIs(self.widget.value_omitted_from_data({'field_day': '1'}, {}, 'field'), False) + data = {'field_day': '1', 'field_month': '12', 'field_year': '2000'} + self.assertIs(self.widget.value_omitted_from_data(data, {}, 'field'), False) diff --git a/tests/forms_tests/widget_tests/test_widget.py b/tests/forms_tests/widget_tests/test_widget.py new file mode 100644 index 0000000000..3911627a0c --- /dev/null +++ b/tests/forms_tests/widget_tests/test_widget.py @@ -0,0 +1,12 @@ +from __future__ import unicode_literals + +from django.forms import Widget +from django.test import SimpleTestCase + + +class WidgetTests(SimpleTestCase): + + def test_value_omitted_from_data(self): + widget = Widget() + self.assertIs(widget.value_omitted_from_data({}, {}, 'field'), True) + self.assertIs(widget.value_omitted_from_data({'field': 'value'}, {}, 'field'), False) |
