为什么-W实际上不接受忽略特定模块的正则表达式?

时间:2019-05-02 09:39:09

标签: python command-line suppress-warnings

在测试过程中,我遇到了4个弃用警告,它们是由我的代码使用库(而不是我的代码本身)生成的,所以我决定禁止显示警告消息。

根据python docs,-W命令行参数应接受正则表达式作为第三个参数(忽略来自特定模块的警告),但这似乎不正确。

实际上,尽管此命令可以禁止所有警告

python3 -m pytest . -v \
-Wignore::DeprecationWarning:aiohttp.connector \
-Wignore::DeprecationWarning:aiohttp.cookiejar \
-Wignore::DeprecationWarning:telepot.aio.api

此命令(regexp one)不会抑制任何警告:

python3 -m pytest . -v \
-Wignore::DeprecationWarning:aiohttp.* \
-Wignore::DeprecationWarning:telepot.*

(如果我用[。*]替换。*,则相同)

因此,如果我详细编写完整的模块软件包名称,则可以使用,但是如果我使用regexp作为整个软件包的全局引用(本例中为aiohttp和telepot),则无法使用

知道为什么吗?

使用在Ubuntu 16.04上从源代码构建的python 3.7.1在virtualenv上进行了测试

0 个答案:

没有答案