В тестовых случаях (юнит-тестирование) сигнал Django pre_save не может быть пойман
В Django мой код по отлову сигнала pre_save работает хорошо. Однако в testcases в tests.py обработчик сигнала не может получить ничего. Есть ли подсказка для этой проблемы?
- Кажется, что мои тестовые случаи и обработчик сигналов находятся в разных приложениях. Это причина проблемы?
1 ответ
Кажется, что мои тестовые случаи и обработчик сигналов находятся в разных приложениях. Это причина проблемы?
Да. Каждое приложение tests.py
атомно. import
код регистрации вашего сигнала или подключите их вручную где-нибудь в своем тесте, чтобы убедиться, что они слушают:
Вы можете разместить код обработки сигнала и регистрационный код где угодно. Однако вам необходимо убедиться, что модуль, в котором он находится, будет импортирован на ранней стадии, чтобы обработка сигналов была зарегистрирована до того, как какие-либо сигналы будут отправлены.
(Из: прослушивание сигналов, подключение функций приемника.)