| 
									
										
										
										
											2020-10-17 09:57:56 +08:00
										 |  |  | import flask | 
					
						
							| 
									
										
										
										
											2022-07-05 21:33:03 +08:00
										 |  |  | from flask.globals import request_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): | 
					
						
							| 
									
										
										
										
											2022-07-05 21:33:03 +08:00
										 |  |  |             request_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 |