Pytest-django: 在 pytest 中捕获特定于 Django 的警告

创建于 2017-11-21  ·  3评论  ·  资料来源: pytest-dev/pytest-django

我想将RemovedInNextVersionWarning警告转换为错误,如https://docs.pytest.org/en/latest/warnings.html 中所述

不幸的是,当我将以下几行添加到 pytest.ini 时:

filterwarnings =
    error::RemovedInDjango20Warning

我最终得到(它正在严格寻找 Python 内部警告):

INTERNALERROR>   File "/myfolder/python3.6/warnings.py", line 236, in _getcategory
INTERNALERROR>     raise _OptionError("unknown warning category: %r" % (category,))
INTERNALERROR> warnings._OptionError: unknown warning category: 'RemovedInDjango20Warning'

pytest-django 作为插件应该/可以让 pytest 知道更多可能的警告来处理吗?

额外的问题(稍微超出范围):更好的是可以过滤掉来自编写代码的 DjangoWarnings 到来自其他库的警告:-)

bitesize documentation question

最有用的评论

使用全名:

filterwarnings =
    error::django.utils.deprecation.RemovedInDjango20Warning

更好的是可以过滤掉来自编写代码的 DjangoWarnings 到来自其他库的警告

我猜是 pytest 的更多功能?!
它可以使用日志过滤器来实现,您可以在其中查找record.getMessage()以您的路径开头。

所有3条评论

使用全名:

filterwarnings =
    error::django.utils.deprecation.RemovedInDjango20Warning

更好的是可以过滤掉来自编写代码的 DjangoWarnings 到来自其他库的警告

我猜是 pytest 的更多功能?!
它可以使用日志过滤器来实现,您可以在其中查找record.getMessage()以您的路径开头。

甜蜜的@blueyed !!!
谢谢你的提示!

我最终放弃了几个问题,使用这个:

filterwarnings =
    error::django.utils.deprecation.RemovedInNextVersionWarning
    ignore::django.utils.deprecation.RemovedInNextVersionWarning:ajax_select.*

可惜文档中没有提到它。 我愿意就此提交一个小的 PR。 它应该在哪里? 在configuration_django也许?

文档的 PR 确实会很好。
不过我真的不了解他们,所以把它放在你期望的地方..;)

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

ryankask picture ryankask  ·  5评论

ojake picture ojake  ·  6评论

rodrigorodriguescosta picture rodrigorodriguescosta  ·  4评论

zsoldosp picture zsoldosp  ·  5评论

tolomea picture tolomea  ·  4评论