如何在connexion中模拟头部?

1 投票
1 回答
29 浏览
提问于 2025-04-12 19:37

我正在使用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

撰写回答