Как также игнорировать предупреждения в pytest об удалении в Django41?
https://docs.pytest.org/en/6.2.x/warnings.html#deprecationwarning-and-pendingdeprecationwarning учит меня использовать это в моем pytest.ini
filterwarnings = ignore:.*U.*mode is deprecated:DeprecationWarning
но я все еще получаю предупреждения следующего содержания:
../usr/local/lib/python3.8/dist-packages/django/apps/registry.py:91
/usr/local/lib/python3.8/dist-packages/django/apps/registry.py:91: RemovedInDjango41Warning: 'pattern_library' defines default_app_config = 'pattern_library.apps.PatternLibraryAppConfig'. Django now detects this configuration automatically. You can remove default_app_config.
app_config = AppConfig.create(entry)
Я бы хотел подавить и это, поскольку это также сторонняя библиотека, которую я не контролирую, хотя я уже подал PR для ее обновления.
Что нужно добавить в pytest.ini?
Вы можете зарегистрировать фильтры на полный путь импорта для данного класса предупреждения; здесь это django.utils.deprecation.RemovedInDjango41Warning
:
filterwarnings =
ignore:.*U.*mode is deprecated:DeprecationWarning
ignore:.*Django now detects this configuration.*:django.utils.deprecation.RemovedInDjango41Warning
В зависимости от версии вашего Django, RemovedInDjango41Warning
является подклассом либо DeprecationWarning
(Django 4.0, все еще в разработке), либо PendingDeprecationWarning
(Django 3.2), и что фильтры предупреждений также подбираются по подклассу, поэтому:
ignore:.*Django now detects this configuration.*:PendingDeprecationWarning
ignore:.*Django now detects this configuration.*:DeprecationWarning
тоже будет работать, как для Django 3.2, так и для 4.0.