如何在connexion中模拟头部?
我正在使用connexion来读取我生产代码中的一些头信息,也就是:
from connexion import request
def get_my_header() -> str:
return request.headers.get("my-header")
在connexion的文档中,我发现了一个叫做 TestContext 的东西。这个听起来很不错,但我找不到任何关于如何模拟头信息的例子,这样在测试 get_my_header()
时,头信息就能被设置好。我尝试了很多不同的方法来设置这个。我发现这个方法很有希望,但就是不管用:
from connexion.testing import TestContext
def test_get_my_header():
request = MagicMock()
request.headers = {"my-header": "header-value"}
with TestContext(context={"request": request}):
# test code
任何想法都很受欢迎!
1 个回答
0
我终于找到了。
这些头信息是通过范围来设置的,而不是通过上下文来设置的。
TestContext
甚至有一个静态方法可以用来构建这些头信息:
from connexion.testing import TestContext
def test_get_my_header():
with TestContext(
scope=TestContext.build_scope(headers=[(b"my-header", b"header-value")])
):
# test code