在测试模式下断开模型信号
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()
有什么方法可以在测试模式 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()