Pytest-django: Menangkap peringatan khusus Django di pytest

Dibuat pada 21 Nov 2017  ·  3Komentar  ·  Sumber: pytest-dev/pytest-django

Saya ingin mengubah peringatan RemovedInNextVersionWarning menjadi kesalahan, seperti yang dijelaskan di https://docs.pytest.org/en/latest/warnings.html

Sayangnya, ketika saya menambahkan ke pytest.ini baris berikut:

filterwarnings =
    error::RemovedInDjango20Warning

Saya akhirnya dengan (ini mencari peringatan internal Python secara ketat):

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'

Haruskah/dapatkah pytest-Django sebagai plugin membuat pytest mengetahui lebih banyak kemungkinan peringatan untuk ditangani?

Pertanyaan bonus (sedikit di luar cakupan): Lebih baik lagi kemungkinan untuk memfilter DjangoWarnings yang berasal dari kode tertulis ke peringatan yang berasal dari perpustakaan lain :-)

bitesize documentation question

Komentar yang paling membantu

Gunakan nama lengkap:

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

Lebih baik lagi adalah kemungkinan untuk menyaring DjangoWarnings yang datang dari kode tertulis ke peringatan yang datang dari perpustakaan lain

Lebih banyak fitur untuk pytest kurasa?!
Itu dapat dicapai dengan menggunakan filter logging, di mana Anda mencarinya record.getMessage() dimulai dengan jalur Anda.

Semua 3 komentar

Gunakan nama lengkap:

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

Lebih baik lagi adalah kemungkinan untuk menyaring DjangoWarnings yang datang dari kode tertulis ke peringatan yang datang dari perpustakaan lain

Lebih banyak fitur untuk pytest kurasa?!
Itu dapat dicapai dengan menggunakan filter logging, di mana Anda mencarinya record.getMessage() dimulai dengan jalur Anda.

Manis @blueyed !!!
Terima kasih atas petunjuknya!

Saya akhirnya membuang beberapa masalah secara khusus, menggunakan ini:

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

Sayang sekali tidak disebutkan dalam dokumen. Saya bersedia mengajukan PR kecil mengenai hal ini. Di mana seharusnya? Di configuring_Django mungkin?

PR untuk dokumen memang menyenangkan.
Saya tidak begitu mengenal mereka, jadi letakkan di tempat yang Anda harapkan .. ;)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat