Wie installiere und entferne ich temporäre django db für Komponententests?

8

Ich hätte gerne ein Python-Modul, das einige Komponententests enthält, die ich an hg bisect --command weitergeben kann.

Die Komponententests testen einige Funktionen einer Django-App, aber ich glaube nicht, dass ich hg bisect --command manage.py test mytestapp verwenden kann, weil mytestapp in settings.py aktiviert werden müsste und die Änderungen an settings.py vorgenommen werden müssten verfälscht, wenn hg bisect das Arbeitsverzeichnis aktualisiert.

Daher würde ich gerne wissen, ob etwas wie das Folgende der beste Weg ist:

%Vor%

Ich wäre Ihnen sehr dankbar, wenn Sie mir Folgendes empfehlen könnten:

  1. Wenn es einen einfacheren Weg gibt, vielleicht subclassing django.test.TestCase , aber nicht editieren von settings.py oder, falls nicht;
  2. Was sollten die Zeilen über "Temporäre django db einrichten" und "Temporäre django db abreißen" lauten?
blokeley 28.03.2010, 15:41
quelle

2 Antworten

8

Gebrochen es. Ich habe jetzt eine Python-Datei, die völlig unabhängig von einer Django-App ist, die Komponententests mit einer Testdatenbank ausführen kann:

%Vor%     
blokeley 28.03.2010, 18:13
quelle
5

Sie müssen dazu das interne Django TestCase verwenden.

%Vor%

Es ist voll kompatibel mit unittest, so dass Ihr Code nicht viel ändern muss.

Sie können mehr über django.test, Spielpläne , flush und Ladedaten Befehle.

Wenn Sie einen Dekorator für diesen Job verwenden möchten, können Sie call_command verwenden, um in Ihrem Python-Programm einen beliebigen django-Befehl zu verwenden. z.B.:

%Vor%     
e-satis 28.03.2010 16:31
quelle