Frage

Ich habe diesen Code in meinem tests.py:

from models import *

und in der models.py Ich habe einen Signal-Handler und registrieren Sie es mit

post_save.connect( post_save_note, sender=Note )

und wenn ich laufe Test mit ./manage.py test main

Ich fand das Signal-Handler wurde zweimal registriert und zweimal ausgeführt, und ich fand es ist, weil die Modelle zweimal importiert wurde.

kann ich nicht setzen from models import * im Testcode? Was soll ich tun?

War es hilfreich?

Lösung

Sie müssen sicherstellen, dass Ihre Modelle werden auf die gleiche Art und Weise immer importiert.

So zum Beispiel, wenn Sie in example1/tests.py haben:

from models import *

und in einem anderen Paket example2/views.py:

from example1.models import ModelA

dann werden Sie das Problem haben Sie erleben. Die Lösung ist, konsequent zu sein und nur das eine oder das andere verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top