你想测试"删除路线"在我在终端的烧瓶应用程序中,我可以看到测试已经过去,它说" test_user_delete(test_app.LayoutTestCase)... ok" 但是当我打开封面时,它仍然是红色的,这意味着它没有覆盖它,请有人向我解释我为什么以及在哪里做错了?
app.layout.view.py
test.py
e1 = Users(name='admine2', email='admine2@gmail.com', age=25)
e2 = Users(name='teste2', email='teste2@gmail.com', age=27)
db.session.add_all([e1, e2])
db.session.commit()
u = Users.query.get(1)
db.session.remove()
db.session.delete(u)
response = self.client.post('/delete/1',
follow_redirects=True)
self.assertTrue('admine2 is removed!', response.data)
view.py:
@layout.route('/delete/<int:id>')
def delete(id):
"""remove monkey"""
user = Users.query.get_or_404(id)
db.session.delete(user)
db.session.commit()
flash("{0} is removed!".format(user.name))
return redirect(url_for("layout.user", page=1, sortby='normal'))
答案 0 :(得分:-1)
我假设您的设置方法设置app.config['Testing'] = True
。否则 Flask-login 会将您重定向到您的登录视图。
编辑但这似乎不是问题,因为你得到了404错误。如果需要登录,则问题是未经授权的 - 401错误。相反,我错误地认为你注册了你的功能&#39; DELETE&#39;方法,所以我提供的url_for语句是错误的。
您可以在密钥_flashes
下的会话中找到闪烁的消息。你可以尝试:
with self.client as c:
rv = self.client.get(url_for('delete', id=e1.id), follow_redirects=True)
print rv.data
with c.session_transaction() as session:
self.assertTrue("delete done !." in session['_flashes'])
您还可以查看Flask Testing