Pytest-django: Capturer les avertissements spécifiques à Django dans pytest

Créé le 21 nov. 2017  ·  3Commentaires  ·  Source: pytest-dev/pytest-django

Je voudrais transformer les avertissements RemovedInNextVersionWarning en erreurs, comme décrit dans https://docs.pytest.org/en/latest/warnings.html

Malheureusement, lorsque j'ajoute à pytest.ini les lignes suivantes :

filterwarnings =
    error::RemovedInDjango20Warning

Je me retrouve avec (il recherche strictement les avertissements internes 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'

Est-ce que pytest-django en tant que plugin devrait/pourrait-il informer pytest d'un plus grand nombre d'avertissements possibles à gérer ?

Question bonus (légèrement hors de portée) : Mieux encore serait une possibilité de filtrer les DjangoWarnings provenant du code écrit vers les avertissements provenant d'autres bibliothèques :-)

bitesize documentation question

Commentaire le plus utile

Utilisez le nom complet :

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

Mieux encore serait une possibilité de filtrer les DjangoWarnings provenant du code écrit vers les avertissements provenant d'autres bibliothèques

Plus une fonctionnalité pour pytest je suppose ?!
Cela peut être réalisé en utilisant un filtre de journalisation, où vous le recherchez record.getMessage() commence par votre chemin.

Tous les 3 commentaires

Utilisez le nom complet :

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

Mieux encore serait une possibilité de filtrer les DjangoWarnings provenant du code écrit vers les avertissements provenant d'autres bibliothèques

Plus une fonctionnalité pour pytest je suppose ?!
Cela peut être réalisé en utilisant un filtre de journalisation, où vous le recherchez record.getMessage() commence par votre chemin.

Doux @blueyed !!!
Merci pour l'astuce !

J'ai fini par éliminer les quelques problèmes spécifiquement, en utilisant ceci:

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

Dommage qu'il n'en soit pas fait mention dans la doc. Je suis prêt à soumettre un petit PR à ce sujet. Où devrait-il être ? Dans configuring_django peut-être ?

Un PR pour les docs serait bien en effet.
Je ne les connais pas vraiment, alors mettez-les là où vous vous attendiez.. ;)

Cette page vous a été utile?
0 / 5 - 0 notes