Testing for the existence of a Flask request context
I just finished reviewing a pull request that contained an extraneous statement inside a try
block.
Here's the code in question:
try:
if signature not in g._celery_tasks:
g._celery_tasks.append(signature)
except RuntimeError:
signature()
While this code works fine, the RuntimeError
being caught is expected to be raised when g._celery_tasks
is accessed.
Because g
is a werkzeug.LocalProxy
object, the exception is raised if there is no active request context. My concern
was that if the next line raised a RuntimeError
, it would also be caught. As this is not the intent of this handler
catching such an error would be unexpected behavior.