gpt4 book ai didi

python - 循环遍历蓝图中的所有规则并根据文件、flask 检查 json

转载 作者:太空宇宙 更新时间:2023-11-03 18:29:04 25 4
gpt4 key购买 nike

我正在测试一个 flask 应用程序。我有很多看起来像这样的approute:

@bp.route('/place', methods=['GET'])
def get_json():
...
return json.dumps(some_data)

我想要做的是获取这个蓝图,实例化它,并检查所有仅转储 json 的方法是否正在转储我在测试用例中期望的 json。到目前为止,我有这个:

from blueprint.my_bp import my_bp

app = Flask(__name__)
app.register_blueprint(my_bp, url_prefix='/test')
my_bp.data = fake_data

def tests():
with app.test_client() as c:
for rule in app.url_map.iter_rules():
if len(rule.arguments) == 0 and 'GET' in rule.methods:
resp = c.get(rule.rule)
log.debug(resp)
log.debug(resp.data)

但是,我有一种方法看起来像这样,因为它尚未实现:

@bp.route('/')
def show_summary():
abort(404)

这将出现在我的测试中,因为从技术上来说它似乎在方法中包含“GET”。

鉴于此,有什么方法可以将测试限制为仅包含返回 json 的测试吗?

最佳答案

一种方法是测试响应是否返回 JSON。你可以尝试这样的事情:

resp = c.get(rule.rule)
try:
json_data = resp.loads(resp.data) # this line will throw exception if not JSON
log.debug(resp)
log.debug(json_data)
except:
pass

关于python - 循环遍历蓝图中的所有规则并根据文件、flask 检查 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22694088/

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