fix: Improve error messages on simple after request hook bugs
Root cause: In `src/flask/app.py`, the `process_response` method calls each `after_request` function and reassigns the response to its return value without checking whether the return value is `None`. When a hook Resolved by BugSlayer
This commit is contained in:
parent
2ac89889f4
commit
2d12e362ce
1 changed files with 10 additions and 0 deletions
|
|
@ -1406,11 +1406,21 @@ class Flask(App):
|
|||
"""
|
||||
for func in ctx._after_request_functions:
|
||||
response = self.ensure_sync(func)(response)
|
||||
if response is None:
|
||||
raise TypeError(
|
||||
f"The after_request handler '{func.__name__}' must return a"
|
||||
" Response object. It returned None."
|
||||
)
|
||||
|
||||
for name in chain(ctx.request.blueprints, (None,)):
|
||||
if name in self.after_request_funcs:
|
||||
for func in reversed(self.after_request_funcs[name]):
|
||||
response = self.ensure_sync(func)(response)
|
||||
if response is None:
|
||||
raise TypeError(
|
||||
f"The after_request handler '{func.__name__}' must return a"
|
||||
" Response object. It returned None."
|
||||
)
|
||||
|
||||
if not self.session_interface.is_null_session(ctx._get_session()):
|
||||
self.session_interface.save_session(self, ctx._get_session(), response)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue