Wie verwende ich Python Mock, um eine Ausnahme auszulösen - aber mit Errno auf einen bestimmten Wert gesetzt

8

Gegeben dieser Python-Code:

%Vor%

Ich möchte alle möglichen Pfade einschließlich der Ausnahmebehandlung testen. Mit Mock ist es einfach genug, eine Ausnahme, die ich mit diesem Code mache, zu erhöhen :

%Vor%

Mock löst eine Ausnahme aus, die einen gedruckten Wert von 2 (ENOENT) hat - aber e.errno ist auf NONE gesetzt. Und bis jetzt habe ich keinen Weg gefunden, es zu setzen. Das Ergebnis ist, dass die Ausnahme immer re-raised wird und ich nie die letzte Codezeile in meinem Komponententest erreiche.

Ich habe auch versucht, eine Dummy-Klasse mit errno set zu erstellen und diese zurückzugeben. Aber es sei denn, es ist * side_effect * gesetzt, um aufgerufen zu werden, es löst keine Ausnahme aus, und wenn ich side_effect einstelle, erhalte ich das object.errno nicht als Rückgabewert.

Gibt es eine Möglichkeit, Mock eine Exception auslösen zu lassen, wo das Exception-Objekt das Attribut errno gesetzt hat?

    
John C 12.12.2013, 15:07
quelle

1 Antwort

6

Übergeben Sie zwei Argumente an den OSError-Konstruktor. (Die erste sollte errno sein).

Zum Beispiel:

%Vor%     
falsetru 12.12.2013, 15:12
quelle

Tags und Links