J'essaye de déclencher un avertissement en Python sans faire planter / arrêter / interrompre le programme.
J'utilise la fonction simple suivante pour vérifier si l'utilisateur lui a passé un nombre non nul. Si tel est le cas, le programme devrait les avertir, mais continuer comme d'habitude. Cela devrait fonctionner comme le code ci-dessous, mais devrait utiliser la classe Warning()
, Error()
ou Exception()
au lieu d'imprimer l'avertissement manuellement.
def is_zero(i):
if i != 0:
print "OK"
else:
print "WARNING: the input is 0!"
return i
Si j'utilise le code ci-dessous et que je passe 0 à la fonction, le programme plante et la valeur n'est jamais retournée. Au lieu de cela, je veux que le programme continue normalement et informe simplement l'utilisateur qu'il a passé 0 à la fonction.
def is_zero(i):
if i != 0:
print "OK"
else:
raise Warning("the input is 0!")
return i
Je veux pouvoir tester qu'un avertissement a été émis en le testant par unittest. Si j'imprime simplement le message, je ne peux pas le tester avec assertRaises in unittest.
print
le message?