Je suis en train de test unitaire une application Django et dans le processus se moquant un appel de base de données à l'aide Mock comme suit (où Record est un modèle Django):Mocking base de données Django appelle
Record.objects.get = Mock()
Record.objects.get.side_effect = Exception("Record.DoesNotExist") # Exception as a string
et je rattrape l'exception comme suit:
except Record.DoesNotExist:
return HttpResponseRedirect("http://www.somesite.com")
Puis-je obtenir l'erreur suivante sur l'exécution du test:
Exception: Record.DoesNotExist
Si au contraire je me moque l'exception comme suit:
Record.objects.get.side_effect = Exception(Record.DoesNotExist) # Exception as a class
Puis-je obtenir l'erreur suivante sur l'exécution du test:
Exception: <class 'supersales.plugin.models.DoesNotExist'>
Quelqu'un pourrait-il expliquer pourquoi ne peut-il attraper l'exception même en cas de un bloc try-except.
Oui, je compris cela après un certain temps. Comme cela aurait dû être évident, je suis un débutant Python. Merci beaucoup pour votre réponse si. – Rohit