I am getting working outside of request context when trying to access session in a test. How can I set up a context when I’m testing something that requires one?
from flask import Flask, session
app = Flask(__name__)
t = Test()
hello = t.hello()
session[‘h’] = ‘hello’
t = tests.Test()
If you want to make a request to your application, use the test_client.
c = app.test_client()
response = c.get(‘/test/url’)
# test response
If you want to test code which uses an application context (current_app, g, url_for), push an app_context.
# test your app context code
If you want test code which uses a request context (request, session), push a test_request_context.
# test your request context code
Both app and request contexts can also be pushed manually, which is useful when using the interpreter.
>>> ctx = app.app_context()
Flask-Script or the new Flask cli will automatically push an app context when running the shell command.
Flask-Testing is a useful library that contains helpers for testing Flask apps.