gpt4 book ai didi

python - 测试需要 Flask 应用程序或请求上下文的代码

转载 作者:行者123 更新时间:2023-11-28 19:13:27 24 4
gpt4 key购买 nike

在测试中尝试访问 session 时,我正在请求上下文之外工作。当我测试需要上下文的内容时,如何设置上下文?

import unittest
from flask import Flask, session

app = Flask(__name__)

@app.route('/')
def hello_world():
t = Test()
hello = t.hello()
return hello

class Test:
def hello(self):
session['h'] = 'hello'
return session['h']

class MyUnitTest(unittest.TestCase):
def test_unit(self):
t = tests.Test()
t.hello()

最佳答案

如果您想向您的应用程序发出请求,请使用 test_client .

c = app.test_client()
response = c.get('/test/url')
# test response

如果您想测试使用应用程序上下文(current_appgurl_for)的代码,请推送 app_context .

with app.app_context():
# test your app context code

如果您想要使用请求上下文(requestsession)的测试代码,请推送 test_request_context .

with current_app.test_request_context():
# test your request context code

应用上下文和请求上下文也可以手动推送,这在使用解释器时很有用。

>>> ctx = app.app_context()
>>> ctx.push()

Flask-Script 或新的 Flask cli 将在运行 shell 命令时自动推送应用上下文。


Flask-Testing是一个有用的库,其中包含用于测试 Flask 应用程序的帮助器。

关于python - 测试需要 Flask 应用程序或请求上下文的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36750168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com