summaryrefslogtreecommitdiff
path: root/tests/forms_tests/widget_tests/test_clearablefileinput.py
diff options
context:
space:
mode:
authordjango-bot <ops@djangoproject.com>2022-02-08 12:09:55 +0100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2022-02-08 12:15:38 +0100
commit6a682b38e75d4c975b4c4493565a59f1bc14397c (patch)
tree0bd9cda550bea26238656d9f120d769e8b41bb9e /tests/forms_tests/widget_tests/test_clearablefileinput.py
parente73ce08888e6f34d3f050377cfd2fbb733be94a9 (diff)
[4.0.x] Refs #33476 -- Reformatted code with Black.
Backport of 9c19aff7c7561e3a82978a272ecdaad40dda5c00 from main.
Diffstat (limited to 'tests/forms_tests/widget_tests/test_clearablefileinput.py')
-rw-r--r--tests/forms_tests/widget_tests/test_clearablefileinput.py101
1 files changed, 65 insertions, 36 deletions
diff --git a/tests/forms_tests/widget_tests/test_clearablefileinput.py b/tests/forms_tests/widget_tests/test_clearablefileinput.py
index dee44c4239..03fe34306b 100644
--- a/tests/forms_tests/widget_tests/test_clearablefileinput.py
+++ b/tests/forms_tests/widget_tests/test_clearablefileinput.py
@@ -9,7 +9,8 @@ class FakeFieldFile:
Quacks like a FieldFile (has a .url and string representation), but
doesn't require us to care about storages etc.
"""
- url = 'something'
+
+ url = "something"
def __str__(self):
return self.url
@@ -23,35 +24,46 @@ class ClearableFileInputTest(WidgetTest):
A ClearableFileInput with is_required False and rendered with an
initial value that is a file renders a clear checkbox.
"""
- self.check_html(self.widget, 'myfile', FakeFieldFile(), html=(
- """
+ self.check_html(
+ self.widget,
+ "myfile",
+ FakeFieldFile(),
+ html=(
+ """
Currently: <a href="something">something</a>
<input type="checkbox" name="myfile-clear" id="myfile-clear_id">
<label for="myfile-clear_id">Clear</label><br>
Change: <input type="file" name="myfile">
"""
- ))
+ ),
+ )
def test_html_escaped(self):
"""
A ClearableFileInput should escape name, filename, and URL
when rendering HTML (#15182).
"""
+
class StrangeFieldFile:
url = "something?chapter=1&sect=2&copy=3&lang=en"
def __str__(self):
- return '''something<div onclick="alert('oops')">.jpg'''
+ return """something<div onclick="alert('oops')">.jpg"""
- self.check_html(ClearableFileInput(), 'my<div>file', StrangeFieldFile(), html=(
- """
+ self.check_html(
+ ClearableFileInput(),
+ "my<div>file",
+ StrangeFieldFile(),
+ html=(
+ """
Currently: <a href="something?chapter=1&amp;sect=2&amp;copy=3&amp;lang=en">
something&lt;div onclick=&quot;alert(&#x27;oops&#x27;)&quot;&gt;.jpg</a>
<input type="checkbox" name="my&lt;div&gt;file-clear" id="my&lt;div&gt;file-clear_id">
<label for="my&lt;div&gt;file-clear_id">Clear</label><br>
Change: <input type="file" name="my&lt;div&gt;file">
"""
- ))
+ ),
+ )
def test_clear_input_renders_only_if_not_required(self):
"""
@@ -60,26 +72,33 @@ class ClearableFileInputTest(WidgetTest):
"""
widget = ClearableFileInput()
widget.is_required = True
- self.check_html(widget, 'myfile', FakeFieldFile(), html=(
- """
+ self.check_html(
+ widget,
+ "myfile",
+ FakeFieldFile(),
+ html=(
+ """
Currently: <a href="something">something</a> <br>
Change: <input type="file" name="myfile">
"""
- ))
+ ),
+ )
def test_clear_input_renders_only_if_initial(self):
"""
A ClearableFileInput instantiated with no initial value does not render
a clear checkbox.
"""
- self.check_html(self.widget, 'myfile', None, html='<input type="file" name="myfile">')
+ self.check_html(
+ self.widget, "myfile", None, html='<input type="file" name="myfile">'
+ )
def test_render_disabled(self):
self.check_html(
self.widget,
- 'myfile',
+ "myfile",
FakeFieldFile(),
- attrs={'disabled': True},
+ attrs={"disabled": True},
html=(
'Currently: <a href="something">something</a>'
'<input type="checkbox" name="myfile-clear" '
@@ -92,14 +111,19 @@ class ClearableFileInputTest(WidgetTest):
def test_render_as_subwidget(self):
"""A ClearableFileInput as a subwidget of MultiWidget."""
widget = MultiWidget(widgets=(self.widget,))
- self.check_html(widget, 'myfile', [FakeFieldFile()], html=(
- """
+ self.check_html(
+ widget,
+ "myfile",
+ [FakeFieldFile()],
+ html=(
+ """
Currently: <a href="something">something</a>
<input type="checkbox" name="myfile_0-clear" id="myfile_0-clear_id">
<label for="myfile_0-clear_id">Clear</label><br>
Change: <input type="file" name="myfile_0">
"""
- ))
+ ),
+ )
def test_clear_input_checked_returns_false(self):
"""
@@ -107,9 +131,9 @@ class ClearableFileInputTest(WidgetTest):
checkbox is checked, if not required.
"""
value = self.widget.value_from_datadict(
- data={'myfile-clear': True},
+ data={"myfile-clear": True},
files={},
- name='myfile',
+ name="myfile",
)
self.assertIs(value, False)
@@ -120,12 +144,12 @@ class ClearableFileInputTest(WidgetTest):
"""
widget = ClearableFileInput()
widget.is_required = True
- field = SimpleUploadedFile('something.txt', b'content')
+ field = SimpleUploadedFile("something.txt", b"content")
value = widget.value_from_datadict(
- data={'myfile-clear': True},
- files={'myfile': field},
- name='myfile',
+ data={"myfile-clear": True},
+ files={"myfile": field},
+ name="myfile",
)
self.assertEqual(value, field)
@@ -134,45 +158,50 @@ class ClearableFileInputTest(WidgetTest):
A ClearableFileInput should not mask exceptions produced while
checking that it has a value.
"""
+
class FailingURLFieldFile:
@property
def url(self):
- raise ValueError('Canary')
+ raise ValueError("Canary")
def __str__(self):
- return 'value'
+ return "value"
- with self.assertRaisesMessage(ValueError, 'Canary'):
- self.widget.render('myfile', FailingURLFieldFile())
+ with self.assertRaisesMessage(ValueError, "Canary"):
+ self.widget.render("myfile", FailingURLFieldFile())
def test_url_as_property(self):
class URLFieldFile:
@property
def url(self):
- return 'https://www.python.org/'
+ return "https://www.python.org/"
def __str__(self):
- return 'value'
+ return "value"
- html = self.widget.render('myfile', URLFieldFile())
+ html = self.widget.render("myfile", URLFieldFile())
self.assertInHTML('<a href="https://www.python.org/">value</a>', html)
def test_return_false_if_url_does_not_exists(self):
class NoURLFieldFile:
def __str__(self):
- return 'value'
+ return "value"
- html = self.widget.render('myfile', NoURLFieldFile())
+ html = self.widget.render("myfile", NoURLFieldFile())
self.assertHTMLEqual(html, '<input name="myfile" type="file">')
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)
+ self.assertIs(self.widget.use_required_attribute("resume.txt"), False)
def test_value_omitted_from_data(self):
widget = ClearableFileInput()
- self.assertIs(widget.value_omitted_from_data({}, {}, 'field'), True)
- self.assertIs(widget.value_omitted_from_data({}, {'field': 'x'}, 'field'), False)
- self.assertIs(widget.value_omitted_from_data({'field-clear': 'y'}, {}, 'field'), False)
+ self.assertIs(widget.value_omitted_from_data({}, {}, "field"), True)
+ self.assertIs(
+ widget.value_omitted_from_data({}, {"field": "x"}, "field"), False
+ )
+ self.assertIs(
+ widget.value_omitted_from_data({"field-clear": "y"}, {}, "field"), False
+ )