diff options
| author | django-bot <ops@djangoproject.com> | 2022-02-08 12:09:55 +0100 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2022-02-08 12:15:38 +0100 |
| commit | 6a682b38e75d4c975b4c4493565a59f1bc14397c (patch) | |
| tree | 0bd9cda550bea26238656d9f120d769e8b41bb9e /tests/forms_tests/widget_tests/test_clearablefileinput.py | |
| parent | e73ce08888e6f34d3f050377cfd2fbb733be94a9 (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.py | 101 |
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§=2©=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&sect=2&copy=3&lang=en"> something<div onclick="alert('oops')">.jpg</a> <input type="checkbox" name="my<div>file-clear" id="my<div>file-clear_id"> <label for="my<div>file-clear_id">Clear</label><br> Change: <input type="file" name="my<div>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 + ) |
