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

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

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

1 Ответ

5 голосов
/ 13 июня 2011

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

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

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

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

...