summaryrefslogtreecommitdiff
path: root/tests/forms_tests/widget_tests
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2016-09-06 17:41:54 -0400
committerTim Graham <timograham@gmail.com>2016-09-22 12:20:58 -0400
commit3507d4e773aa9ff2336e7230ba231c4ba6eb568f (patch)
tree09467b4724131e91b0afe1d2f133e5e56ba068cf /tests/forms_tests/widget_tests
parent92323d54fd6df077dc523c423c7bb2dd8dbde621 (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')
-rw-r--r--tests/forms_tests/widget_tests/test_checkboxinput.py4
-rw-r--r--tests/forms_tests/widget_tests/test_fileinput.py4
-rw-r--r--tests/forms_tests/widget_tests/test_multiwidget.py7
-rw-r--r--tests/forms_tests/widget_tests/test_selectdatewidget.py8
-rw-r--r--tests/forms_tests/widget_tests/test_widget.py12
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)