我有一个具有两个Django模型实例的测试。我想在Django模型实例中模拟两个函数-仅针对实例之一。我希望其他实例没有模拟。
这是我的代码:
模型:
src
测试:
class MyModel(models.Model):
id = models.AutoField(primary_key=True)
def __init__(self,*kargs,**kwargs):
super(self.__class__,self).__init__(*kargs,**kwargs)
@property
def count(self):
logic....
return count
def get_data(self,parameter=None):
logic.....
return data
这些模拟不起作用-我收到此错误:
def test(self):
data_dict = {....}
my_model = MyModel(**data_dict)
my_model.save()
data_dict2 = {....}
data_dict2['parent'] = my_model
my_model2 = MyModel(**data_dict)
my_model2.save()
with patch.object(my_model2,'count',lambda x: 20),\
patch.object(my_model2,'get_data',lambda x: {[{'Id': str(i)} for i in range(20)]}):
self.assertEqual(my_model2.count,3) # This will also call my_model.get_data and my_model.count - of the instance I am trying to mock
如何模拟Django模型实例函数?
谢谢