So überprüfen Sie einen .__ getitem __ () -Aufruf in einer Mock mock_calls-Liste während des Komponententests

8

Wenn ich versuche, eine Methode zu testen, die ein Tupel zurückgibt, und ich versuche herauszufinden, ob der Code auf den richtigen Tupel-Index zugreift, versucht Python, den erwarteten Aufruf auszuwerten und in eine Zeichenkette umzuwandeln.

call().methodA().__getitem__(0) wird in '().methodA' umgewandelt in meiner expected_calls Liste für die Behauptung.

Der angegebene Beispielcode führt zur Ausgabe und zur Rückverfolgung:

%Vor%

Wie gehe ich vor, um diese Methode zu bestätigen?     self.tbm.methodA () [0] richtig?

Beispielcode (Python 3.3.2):

%Vor%     
Mike H 19.09.2013, 21:14
quelle

2 Antworten

3

Um auf mock_object.account['xxx1'].patch(body={'status': 'active'}) zu testen Ich musste den Test verwenden:

%Vor%

Ich kann nicht erklären, warum das funktioniert, das sieht nach merkwürdigem Verhalten aus, möglicherweise ein Fehler im Mock, aber ich bekomme diese Ergebnisse immer und es funktioniert.

    
Jens Timmerman 06.10.2016 07:48
quelle
1

Ich bin gerade auf dasselbe Problem gestoßen. Ich habe die Lösung / Work-Around von hier aus verwendet:

Ссылка

nämlich:

%Vor%

Sie können die Fehlinterpretation der Zauberfunktionsnamen überspringen und mit ihren Argumenten überprüfen.

    
u9rZTV9QAc 29.08.2015 16:56
quelle