在测试模式下断开模型信号

Disconect models signals in test mode

有什么方法可以在测试模式 Django 1.11 中断开模型信号吗?

或者可能是一种创建不带 ORM 的对象以防止从 post_save 方法发送信号的方法?

设置测试代码

def setUp(self):
   #some code
   with patch(post_save):
       self.instance = Instance.objects.create(fields)

错误:AttributeError: 'ModelSignal' object has no attribute 'rsplit'

这些信号不应该真的被模拟,但如果你真的需要这样做,这应该有效:

from unittest.mock import patch

def test_method(self):
    with patch('django.db.models.signals.post_save.send'):
        MyObject.objects.create()