使用 Flask 测试异常返回码

Jam*_*Lam 6 python flask python-unittest

我有以下代码块

class APITests(unittest.TestCase):

    def setUp(self):
        app.config['TESTING'] = True
        self.app = app.test_client()
        app.config['SECRET_KEY'] = 'kjhk'

    def test_exn(self, query):
        query.all.side_effect = ValueError('test')
        rv = self.app.get('/exn/')
        assert rv.status_code == 400
Run Code Online (Sandbox Code Playgroud)

我想检查 ) 的返回码self.app.get('/exn/。但是,我注意到query.all()将异常传播到测试用例,而不是捕获它并返回错误代码。

在 Flask 中抛出异常时,如何检查无效输入的返回码?

小智 -1

您可以assertRaise从 中例外werkzeug

例子:

from werkzeug import exceptions
def test_bad_request(self):
    with self.app as c:
        rv = c.get('/exn/',
                   follow_redirects=True)
        self.assertRaises(exceptions.BadRequest)    
Run Code Online (Sandbox Code Playgroud)