zweimal importieren, wenn Testlauf
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?
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