gpt4 book ai didi

python - Flask 重定向返回 200 而不是 302

转载 作者:行者123 更新时间:2023-11-30 23:02:27 26 4
gpt4 key购买 nike

我正在为 Flask 应用程序编写单元测试,但不确定为什么响应返回状态代码 200 而不是 302。我正在测试的 View 正在使用重定向,并且我的帖子有 follow_redirects=False设置。

下面是测试和查看代码:

#test_views.py
def test_can_post_new_engagement(self):
response = self.client.post(
url_for('main.new_engagement'),
data={
'title': 'Sample Title',
'client': 1},
follow_redirects=False)
self.assertEqual(response.status_code, 302)

#views.py
@main.route('/engagement/new', methods=['GET', 'POST'])
def new_engagement():
form = EngagementForm()
form.client.choices = [(o.id, o.official_name) for o in
Organization.query.order_by('official_name')]
form.client.choices.insert(0, (0, '--- Select Organization ---'))
if form.validate_on_submit():
eng = Engagement(title=form.title.data,
client_id=form.client.data)
db.session.add(eng)
return redirect(url_for('main.new_pentest'))
return render_template('engagement_form.html', form=form)

错误:

 FAIL: test_can_post_new_engagement (test_views.NewEngagementView)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/ramces/dev/global_engagement_manager/tests/unit/test_views.py
", line 36, in test_can_post_new_engagement
self.assertEqual(response.status_code, 302)
AssertionError: 200 != 302

最佳答案

分辨率

首先,正如 Wombatz 所建议的,我没有意识到我的表单没有通过 form.validate_on_submit()

经过一些调试,我意识到我的测试配置中缺少 CSRF token ,因此添加 WTF_CSRF_ENABLED = False 解决了这个问题。

关于python - Flask 重定向返回 200 而不是 302,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34487083/

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