如果未提供位置参数,为什么Flask-restful返回200?

时间:2019-12-24 18:44:05

标签: flask-restful

我有以下端点:

api.add_resource(CheckEmailV5, '/v5/check_email/<email>')

class CheckEmailV5(Resource, MixinResource):
    def __init__(self):
        super(CheckEmailV5, self).__init__()
        self.req_parser = reqparse.RequestParser()
        self.req_parser.add_argument('token', location='headers')

    def get(self, email):
        args = self.req_parser.parse_args(strict=True)
        if args['token'] != config.API_TOKEN:
            return '', 403
        if not email:
            return '', 400

在单元测试中,我试图测试不提供电子邮件的情况:

def test_no_email(self):
    with app.app_context():
        self.generate_server_locations()
        result = self.app.get('/v5/check_email', headers={'token': 'abc123'})
        self.assertEqual(400, result.status_code)

但是,它总是返回200。我试图设置一个断点,但是实际上资源从未被使用过。我相信,因为路径/v5/check_email/<email>不匹配,它会自动返回200,这是一个非常奇怪的行为。我想念什么?

0 个答案:

没有答案