mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +00:00
Fixed #27186 -- Fixed model form default fallback for MultiWidget, FileInput, SplitDateTimeWidget, SelectDateWidget, and SplitArrayWidget.
Thanks Matt Westcott for the review.
This commit is contained in:
parent
92323d54fd
commit
3507d4e773
15 changed files with 178 additions and 13 deletions
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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)
|
||||
|
|
12
tests/forms_tests/widget_tests/test_widget.py
Normal file
12
tests/forms_tests/widget_tests/test_widget.py
Normal file
|
@ -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)
|
Loading…
Add table
Add a link
Reference in a new issue