将字符串转换为 IO[str] 数据类型

Convert string to IO[str] data type

我有以下问题。

出于我的单元测试目的,我以这种方式生成资源文件的路径:

file_name = os.path.join(
        os.path.dirname(os.path.abspath(__file__)), 'resources/resource.json'
    )

file_name var 的返回数据类型是 str

我正在通过此单元测试测试的方法,然后接受来自 typing libraryIO[str] 数据类型。

单元测试工作正常,但是当我 运行 mypy 验证我的代码时,我收到以下错误消息:

tests/test_get_requirements.py:73: error: Argument 1 to "JiraRequirements" has incompatible type "str"; expected "IO[str]"

Line **73** is basically the instantiation of new object of *JiraRequirements class*

MockedObject = JiraRequirements(file_name)

mypy错误正确。您传递 str 文件名,其中 typing 需要打开的文件对象。来自 IO 文档:

This is an abstract, generic version of the return of open().