Pytest-django: Выявление специфичных для Django предупреждений в pytest

Созданный на 21 нояб. 2017  ·  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.*

Жалко, что в документации об этом нет упоминания. Я готов предоставить небольшой пиар по этому поводу. Где это должно быть? Может быть, в configuring_django?

Было бы неплохо получить PR для документов.
Хотя я их на самом деле не знаю, поэтому поместите его там, где вы этого ожидали ..;)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги