3

嗨,想在终端的烧瓶应用程序中测试“删除路线”,我可以看到测试已经过去,它说“test_user_delete (test_app.LayoutTestCase) ... ok”但是当我打开封面时它仍然是红色这意味着不包括它,请您向我解释为什么以及在哪里做错了?

app.layout.view.py

在此处输入图像描述

测试.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)

视图.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'))
4

1 回答 1

-1

我假设您的 setup-method sets app.config['Testing'] = True。否则烧瓶登录会将您重定向到您的登录视图。

编辑但这似乎不是这里的问题,因为您收到 404 错误。如果需要登录,则问题将是未经授权的 - 401 错误。相反,我错误地假设您使用“DELETE”方法注册了您的函数,因此我提供的 url_for 语句是错误的。

您可以在 key 下的 session 中找到闪烁的消息_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

于 2015-02-23T13:56:39.453 回答