我有一个基于 Flask 的 Api,它在 Header 中接收访问令牌。这工作正常。
在我的代码中,我检查标头是否可用,否则是 403 禁止访问。
if 'Access-Token' in request.headers:
token = request.headers['Access-Token']
else:
return make_response('[HTTP_403_FORBIDDEN]', HttpStatusCode.HTTP_403_FORBIDDEN)
现在我正在编写一个单元测试,我被困在request.headers. 我正在使用test_request_context(),但我无法向标头添加任何值,因为这是不可变的。
我也尝试过这种方法:
with app.test_request_context(environ_base={'Access-Token': token}):
它将标题添加到environ,但没有添加到request.headers,这是我有点迷路的地方。
其他选择是模拟修补请求,但我不需要上下文。
那么,我该如何进行单元测试if 'Access-Token' in request.headers:呢test_request_context?
编辑:
我发现了如何在这个链接上设置标题:
https: //gist.github.com/pgjones/ 0bd192d3fae7f6dfadead178dbac0e1e`
它基本上似乎是werkzeug.http在环境字典中设置键的约定:
如果要添加键名的标题Access-Token,则 environ_base 键名必须命名为HTTP_ACCESS_TOKEN
这就是代码现在的样子:
with self.app.test_request_context(environ_base={'HTTP_ACCESS_TOKEN': token}):
现在条件if 'Access-Token' in request.headers:有效并返回true