В тестовых случаях (юнит-тестирование) сигнал Django pre_save не может быть пойман

В Django мой код по отлову сигнала pre_save работает хорошо. Однако в testcases в tests.py обработчик сигнала не может получить ничего. Есть ли подсказка для этой проблемы?

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

1 ответ

Решение

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

Да. Каждое приложение tests.py атомно. import код регистрации вашего сигнала или подключите их вручную где-нибудь в своем тесте, чтобы убедиться, что они слушают:

Вы можете разместить код обработки сигнала и регистрационный код где угодно. Однако вам необходимо убедиться, что модуль, в котором он находится, будет импортирован на ранней стадии, чтобы обработка сигналов была зарегистрирована до того, как какие-либо сигналы будут отправлены.

(Из: прослушивание сигналов, подключение функций приемника.)

Другие вопросы по тегам