【发布时间】:2020-05-23 08:08:46
【问题描述】:
我的一些测试反复失败,所以我用最短的一个作为这个问题的例子
测试
def test_delete_char(self):
with self.client:
start = characters.query.count() #num of entries in db
self.client.post(
url_for("delete", identity=1),
follow_redirects=True)
end = characters.query.count() #num of entries in db after deletion
self.assertTrue(start > end) #check if delete has gone through
路线
@app.route("/delete/<identity>", methods=["GET", "POST"])
def delete(identity):
form = DeleteForm()
if form.validate_on_submit():
char = characters.query.filter_by(id=identity).first()
db.session.delete(char)
db.session.commit()
return redirect(url_for("home"))
return render_template("delete.html", form=form, identity=identity, title="Delete")
在网站上手动运行此功能时没有问题。使用 pytest 我可以看到它没有通过 if form.validate_on_submit(): 在删除函数中。我只能得出结论,我的 self.client.post 是错误的,但我不知道问题是什么。任何帮助将不胜感激
【问题讨论】:
标签: flask pytest flask-wtforms