1

我有一个基于 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

4

0 回答 0