3

こんにちは、ターミナルのフラスコアプリケーションで「ルートの削除」をテストしたいのですが、テストが過ぎて「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)

ビュー.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。そうしないと、 Flask-loginによってログイン ビューにリダイレクトされます。

編集しかし、404エラーが発生するため、これはここでは問題ではないようです。login-required の場合、問題は不正 - 401 エラーです。代わりに、「DELETE」メソッドを使用して関数を登録したと誤って想定したため、提供された 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もご覧ください。

于 2015-02-23T13:56:39.453 に答える