Pytest的“caplog”装置的类型提示是什么?

正如标题所说。我正在使用caplogpytest 附带的夹具。我正在使用 mypy 进行类型检查,并且想知道 caplog 的正确类型提示是什么。

例如:

def test_validate_regs(caplog: Any) -> None:
    validate_regs(df, logger)
    assert caplog.text == "", "No logs should have been made."

在此示例中,我将其设置为Any,但我想知道是否可以使用更具体的类型提示。

我尝试阅读有关 caplog 的文档,以及在 github 中搜索 pytest 代码以查看 caplog 固定装置返回的内容,但除了以下内容之外找不到任何其他内容。但是使用str类型只是给了我一个错误,说该str类型没有属性text,这是有道理的。

当我打印 caplog 的类型时,_pytest.logging.LogCaptureFixture虽然我不确定如何从中导入_pytest并使用它。

回答

从 pytest 6.2.0 开始,您应该使用 pytest.LogCaptureFixture

在此之前,您需要导入一个不推荐的私有名称(我们经常在_pytest没有通知的情况下更改命名空间内的内部结构,并且不承诺向前或向后兼容性)


免责声明:我是 pytest 核心开发人员


以上是Pytest的“caplog”装置的类型提示是什么?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>