python – 使用Flask测试异常返回代码

我有以下代码

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

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

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

解决方法

你可以断言来自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)

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...