我有以下端点:
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,这是一个非常奇怪的行为。我想念什么?