/ / В тестови случаи (тестване на единица), Django pre_save сигнал не може да бъде уловен - python, django, unit-testing, django-models, django-signals

В тестови случаи (тестване на единица), сигналът Django pre_save не може да бъде уловен - python, django, unit-testing, django-models, django-signals

В Django, моят код за улавяне на pre_save сигнал работи добре. Въпреки това, в тестовете в tests.py, обработващият сигнала не може да получи нищо. Има ли намек за този проблем?

  • Изглежда, че моите тестови кутии и манипулатор на сигнала са в различни приложения. Това е причината за проблема?

Отговори:

5 за отговор № 1

Изглежда, че моите тестови кутии и манипулатор на сигнала са в различни приложения. Това е причината за проблема?

Да. Всяко приложение tests.py е атомна. import вашият код за регистрация на сигнал или да ги свържете ръчно някъде в теста, за да сте сигурни, че слушат:

Можете да поставите обработка на сигнали и регистрационен кодкъдето пожелаете. Трябва обаче да сте сигурни, че ще бъдете сигурни модулът, в който се намира, се внася по-рано за да се получи обработката на сигнала регистрирани преди да са необходими сигнали да бъде изпратено.

(От: Слушане на сигнали, Свързване на функциите на приемника.)