Browse Source

Merge pull request #2019 from pallets/bugfix/sendfile-error

Do not cause errors for unknown files for sendfile
pull/2024/head
Armin Ronacher 8 years ago committed by GitHub
parent
commit
a40489e0ce
  1. 4
      docs/upgrading.rst
  2. 8
      flask/helpers.py
  3. 4
      tests/test_helpers.py

4
docs/upgrading.rst

@ -54,8 +54,8 @@ misleading ``name`` attribute. Silently swallowing errors in such cases was not
a satisfying solution.
Additionally the default of falling back to ``application/octet-stream`` has
been removed. If Flask can't guess one or the user didn't provide one, the
function fails.
been restricted. If Flask can't guess one or the user didn't provide one, the
function fails if no filename information was provided.
.. _upgrading-to-011:

8
flask/helpers.py

@ -513,14 +513,10 @@ def send_file(filename_or_fp, mimetype=None, as_attachment=False,
if mimetype is None:
if attachment_filename is not None:
mimetype = mimetypes.guess_type(attachment_filename)[0]
mimetype = mimetypes.guess_type(attachment_filename)[0] \
or 'application/octet-stream'
if mimetype is None:
if attachment_filename is not None:
raise ValueError(
'Unable to infer MIME-type from filename {0!r}, please '
'pass one explicitly.'.format(attachment_filename)
)
raise ValueError(
'Unable to infer MIME-type because no filename is available. '
'Please set either `attachment_filename`, pass a filepath to '

4
tests/test_helpers.py

@ -402,9 +402,7 @@ class TestSendfile(object):
assert 'no filename is available' in str(excinfo)
with app.test_request_context():
with pytest.raises(ValueError) as excinfo:
flask.send_file(StringIO("LOL"), attachment_filename='filename')
assert "Unable to infer MIME-type from filename 'filename'" in str(excinfo)
flask.send_file(StringIO("LOL"), attachment_filename='filename')
def test_send_file_object(self):
app = flask.Flask(__name__)

Loading…
Cancel
Save