Ändere Django Authentication Backend zum Testen

7

Meine Django-Site verwendet das LDAP-Backend für die Authentifizierung in der Produktion, aber dies ist nicht zum Testen geeignet (es können keine Anfragen von Dummy-Benutzern erstellt werden). Wie kann ich dieses Backend nur für Tests deaktivieren?

Hier ist der relevante settings.py-Abschnitt:

%Vor%     
Shaun Singh 05.07.2013, 21:40
quelle

3 Antworten

12

Erstellen Sie eine alternative Einstellungsdatei, z. B. myproj/test_settings.py , und geben Sie diese Einstellungsdatei beim Ausführen von Komponententests an.

Schreiben Sie die alternative Einstellungsdatei wie folgt:

%Vor%

Das heißt, die Einstellungen erben alles von Ihren normalen Einstellungen, überschreiben jedoch die Definition AUTHENTICATION_BACKENDS , wobei Ihr LDAP-Backend auskommentiert ist.

Führen Sie Ihre Tests dann so aus:

%Vor%     
janos 05.07.2013, 21:51
quelle
13

Wenn Sie das Backend nur für bestimmte Tests deaktivieren wollen / können, können Sie auch das override_settings Dekorateur. Sie können diesen Dekorator für die Testfallklasse verwenden:

%Vor%

Sie können es aber auch selektiv für eine Testmethode verwenden:

%Vor%     
Mark van Lent 09.10.2013 08:31
quelle
0

Zukünftige Referenz, eine andere Option, die für das Testen untersucht wird, besteht darin, die Eigenschaft is_authenticated des Objekts User in ein Lambda zu ändern. Zum Beispiel:

%Vor%     
quelle

Tags und Links