Comments (3)
Call response.close()
at the end. See Flask itself for examples of this in tests.
from flask.
Call
response.close()
at the end. See Flask itself for examples of this in tests.
@davidism, I assume you are referring to the call to rv.close()
in the test_send_from_directory code.
Unfortunately, the call to send_from_directory and the associated close both happen in the test code proper. When called by production code the call to response.close()
cannot be done without error. When I modify download_resources
to the following it causes additional errors:
@app.route('/<path:name>')
def download_resources(name):
response = send_from_directory('resources', name)
response.close()
return response
Error:
self = <werkzeug.wsgi.FileWrapper object at 0x10c061150>
def __next__(self) -> bytes:
> data = self.file.read(self.buffer_size)
E ValueError: read of closed file
venv/lib/python3.11/site-packages/werkzeug/wsgi.py:332: ValueError
The documentation does not mention a call to response.close()
.
Other documentation similarly does not call response.close()
.
It seems to me that the rv.close()
in Flask's test case masks the unclosed file error, as you are not using send_from_directory via an external call like a Flask app would.
Thoughts?
from flask.
You don't call it in your application, only in your test. WSGI servers close the response automatically, the test client cannot.
from flask.
Related Issues (20)
- @app.errorhandler() cannot be used in blueprint when debug=False
- Flask is not running when Debug is True on Windows HOT 1
- Starter example results in 404 error HOT 4
- How to avoid duplicate threads in debug mode
- Unable to silence logging messages HOT 1
- Broken HTML Markup in Template Inheritance HOT 1
- When using Flask to receive multiple files, an extra ā0Dā appears at the end of some images HOT 1
- Use of `hashlib.sha1` causes issue in FIPS build HOT 3
- Post request response time spikes HOT 1
- HTTP response status 204 (`No Content`) includes superfluous `Content-Type` header HOT 1
- Unable to start flask3.0 app on a minimal implementation with `invalid syntax. Perhaps you forgot a comma? (scaffold.py, line 295)` HOT 2
- Calling `flash` after `get_flashed_messages` fails HOT 3
- Conflicting cookies shenanigans with `SESSION_COOKIE_DOMAIN` HOT 7
- Failing to start (due to port unavailable) cannot be directly determined by the current python api HOT 4
- Add support for partitioned session cookies HOT 4
- Change of query string encoding behaviour in flask 3.0 HOT 1
- Flask ignores multiple slashes at the beginning of the path HOT 1
- Avoid opening sessions for static resources HOT 4
- request parsing special parameters HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
š Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ššš
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ā¤ļø Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flask.