在测试用例(单元测试)中,无法捕获Django pre_save信号

时间:2011-06-08 15:16:30

标签: python django unit-testing django-models django-signals

在Django中,我的捕获pre_save信号的代码效果很好。但是,在tests.py中的测试用例中,信号处理程序无法接收任何内容。这个问题有什么暗示吗?

  • 我的测试用例和信号处理程序似乎在不同的应用程序中。这是问题的原因吗?

1 个答案:

答案 0 :(得分:5)

  

我的测试用例和信号处理程序似乎在不同的应用程序中。这是问题的原因吗?

是。每个应用程序的tests.py都是原子的。 import您的信号注册码或在测试中的某个位置手动连接它们以确保它们正在收听:

  

你可以把信号处理和   注册码随时随地。   但是,您需要确保这一点   它所在的模块很早就被导入了   因此,信号处理得到   在任何信号需要之前注册   发送。

(来自: Listening to signals, Connecting receiver functions 。)