Testumleitung in Flask mit Python-Unittest

8

Ich versuche gerade einige Komponententests für meine Flask-Anwendung zu schreiben. In vielen meiner Ansichtsfunktionen (wie beispielsweise meinem Login) leite ich auf eine neue Seite um. Also zum Beispiel:

%Vor%

Ich versuche zu überprüfen, dass diese Umleitung in meinen Komponententests passiert. Im Moment habe ich:

%Vor%

Diese Funktion stellt sicher, dass die zurückgegebene Antwort 200 ist, aber die letzte Zeile ist offensichtlich keine gültige Syntax. Wie kann ich das behaupten? Meine Funktion create_user ist einfach:

%Vor%

Danke!

    
Jason Brooks 18.04.2014, 01:56
quelle

3 Antworten

7

Probieren Sie Flask-Testing

aus

Es gibt eine API für assertRedirects , die Sie verwenden können

%Vor%

TEST-Skript:

%Vor%     
kartheek 18.04.2014, 05:32
quelle
5

Flask hat eingebaute Test-Hooks und einen Test-Client, der sich hervorragend für funktionelles Zeug eignet.

%Vor%

Die Docs haben mehr Informationen darüber, wie man das macht, auch wenn Sie "bubbitr" sehen, das ist der Name der Testklasse und nichts in Flask, was mich beim ersten Mal verwirrt hat.

    
Rachel Sanders 18.04.2014 20:51
quelle
4

Eine Möglichkeit besteht darin, den Weiterleitungen nicht zu folgen (entweder follow_redirects von Ihrer Anfrage entfernen oder explizit auf False setzen).

Dann können Sie einfach self.assertEquals(rv.status, "200 OK") durch ersetzen:

%Vor%

Wenn Sie aus irgendeinem Grund follow_redirects weiter verwenden möchten, ist eine andere (leicht spröde) Möglichkeit, nach einer erwarteten Dashboard-Zeichenfolge zu suchen, wie eine HTML-Element-ID in der Antwort von rv.data . z.B. self.assertIn('dashboard-id', rv.data)

    
broox 17.08.2014 23:48
quelle