117 votes

Comment importer l’exception Django DoesNotExist ?

Je suis en train de créer un UnitTest pour vérifier qu’un objet a été supprimé.

Je reçois le message d’erreur :

176voto

Chris Pratt Points 53859

Vous pouvez également importer des de , si vous voulez un moyen générique, indépendante des modèles pour intercepter l’exception :

126voto

Daniel Roseman Points 199743

Vous n'avez pas besoin de l'importer - comme vous l'avez déjà écrit correctement, DoesNotExist est une propriété du modèle lui-même, dans ce cas - Answer.

Votre problème est que vous appelez l' get méthode - qui soulève l'exception - avant de passer à l' assertRaises. Vous avez besoin de séparer les arguments de la appelable, comme décrit dans la unittest de la documentation:

self.assertRaises(Answer.DoesNotExist, Answer.objects.get, body__exact='<p>User can reply to discussion.</p>')

ou mieux:

with self.assertRaises(Answer.DoesNotExist):
    Answer.objects.get(body__exact='<p>User can reply to discussion.</p>')

10voto

defrex Points 2448

est toujours une propriété du modèle qui n’existe pas. Dans ce cas, il serait .

3voto

Xiong Chiamiov Points 1734

Une chose à surveiller est que le second paramètre `` doit être un callable - pas seulement une propriété. Par exemple, j’ai eu des difficultés avec cette déclaration :

mais cela a bien fonctionné :

0voto

stevejalim Points 6750

C’est comment faire un tel test.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X