Pytest-django: Abfangen von Django-spezifischen Warnungen in pytest

Erstellt am 21. Nov. 2017  ·  3Kommentare  ·  Quelle: pytest-dev/pytest-django

Ich möchte die RemovedInNextVersionWarning Warnungen in Fehler umwandeln, wie in https://docs.pytest.org/en/latest/warnings.html beschrieben

Leider füge ich pytest.ini die folgenden Zeilen hinzu:

filterwarnings =
    error::RemovedInDjango20Warning

Am Ende habe ich (es sucht ausschließlich nach internen Python-Warnungen):

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'

Sollte / könnte pytest-django als Plugin pytest auf weitere mögliche Warnungen aufmerksam machen?

Bonusfrage (etwas außerhalb des Rahmens): Noch besser wäre eine Möglichkeit, die DjangoWarnings aus dem geschriebenen Code auf die Warnungen aus anderen Bibliotheken herauszufiltern :-)

bitesize documentation question

Hilfreichster Kommentar

Verwenden Sie den vollständigen Namen:

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

Noch besser wäre eine Möglichkeit, die DjangoWarnings aus dem geschriebenen Code auf die Warnungen aus anderen Bibliotheken herauszufiltern

Mehr ein Feature für pytest, denke ich?!
Dies kann mit einem Protokollierungsfilter erreicht werden, wo Sie danach suchen, record.getMessage() beginnt mit Ihrem Pfad.

Alle 3 Kommentare

Verwenden Sie den vollständigen Namen:

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

Noch besser wäre eine Möglichkeit, die DjangoWarnings aus dem geschriebenen Code auf die Warnungen aus anderen Bibliotheken herauszufiltern

Mehr ein Feature für pytest, denke ich?!
Dies kann mit einem Protokollierungsfilter erreicht werden, wo Sie danach suchen, record.getMessage() beginnt mit Ihrem Pfad.

Süße @blueyed !!!
Danke für den Tipp!

Ich habe die wenigen Probleme speziell verworfen, indem ich Folgendes verwendet habe:

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

Schade, dass es in den Unterlagen nicht erwähnt wird. Dazu gebe ich gerne eine kleine PR ab. Wo soll es sein? In configure_django vielleicht?

Eine PR für die Docs wäre in der Tat schön.
Ich kenne sie aber nicht wirklich, also platziere es dort, wo du es erwartet hättest.. ;)

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen