mirror of
https://github.com/django/django.git
synced 2025-11-17 10:43:25 +00:00
Ensure FileInput omits the required attribute when initial data exists, preventing unnecessary validation for already uploaded files. Fixes unexpected required field behavior when editing existing file fields.
26 lines
1.1 KiB
Python
26 lines
1.1 KiB
Python
from django.forms import FileInput
|
|
|
|
from .base import WidgetTest
|
|
|
|
|
|
class FileInputTest(WidgetTest):
|
|
widget = FileInput()
|
|
|
|
def test_render(self):
|
|
"""
|
|
FileInput widgets never render the value attribute. The old value
|
|
isn't useful if a form is updated or an error occurred.
|
|
"""
|
|
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)
|
|
|
|
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)
|