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% 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% 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:
Sie können es aber auch selektiv für eine Testmethode verwenden:
%Vor% 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:
Tags und Links django unit-testing ldap