2020-10-17 09:57:56 +08:00
|
|
|
import flask
|
2025-09-13 05:52:03 +08:00
|
|
|
from flask.globals import app_ctx
|
2020-10-17 09:57:56 +08:00
|
|
|
from flask.sessions import SessionInterface
|
|
|
|
|
|
|
|
|
2021-05-14 23:11:09 +08:00
|
|
|
def test_open_session_with_endpoint():
|
|
|
|
"""If request.endpoint (or other URL matching behavior) is needed
|
|
|
|
while loading the session, RequestContext.match_request() can be
|
|
|
|
called manually.
|
|
|
|
"""
|
|
|
|
|
2020-10-17 09:57:56 +08:00
|
|
|
class MySessionInterface(SessionInterface):
|
2021-05-14 23:11:09 +08:00
|
|
|
def save_session(self, app, session, response):
|
2020-10-17 09:57:56 +08:00
|
|
|
pass
|
|
|
|
|
2021-05-14 23:11:09 +08:00
|
|
|
def open_session(self, app, request):
|
2025-09-13 05:52:03 +08:00
|
|
|
app_ctx.match_request()
|
2020-10-17 09:57:56 +08:00
|
|
|
assert request.endpoint is not None
|
|
|
|
|
|
|
|
app = flask.Flask(__name__)
|
|
|
|
app.session_interface = MySessionInterface()
|
2021-05-14 23:11:09 +08:00
|
|
|
|
|
|
|
@app.get("/")
|
|
|
|
def index():
|
|
|
|
return "Hello, World!"
|
|
|
|
|
|
|
|
response = app.test_client().get("/")
|
2020-10-17 09:57:56 +08:00
|
|
|
assert response.status_code == 200
|