objectif
Enregistrer les warnings dans un contexte pour les inspecter ou tester.
code minimal
import warnings
with warnings.catch_warnings(record=True) as rec:
warnings.simplefilter("always")
warnings.warn("deprecated", DeprecationWarning)
print(len(rec) == 1) # attendu: True
utilisation
import warnings
with warnings.catch_warnings(record=True) as rec:
warnings.simplefilter("error", ResourceWarning)
warnings.warn("ok", UserWarning)
print(any(isinstance(w.message, UserWarning) for w in rec))
variante(s) utile(s)
import warnings
print(callable(warnings.catch_warnings))
notes
- record=True retourne une liste de WarningMessage; utile en tests.
- simplefilter permet de promouvoir un type de warning en erreur.