Python 3.x Python unittest,mock return_value为每个调用返回不同的值

Python 3.x Python unittest,mock return_value为每个调用返回不同的值,python-3.x,unit-testing,Python 3.x,Unit Testing,我想测试一个在同一个模型上有两个查询的方法,并且我希望每个查询返回不同的结果 def method_to_test(): qs1 = Order.objects.filter() qs2 = Order.objects.filter() @mock.patch('Order.objects.filter') def test_method_to_test(self, mock_qs): mock_qs.return_value = MagicMock(side_eff

我想测试一个在同一个模型上有两个查询的方法,并且我希望每个查询返回不同的结果

def method_to_test():
    qs1 = Order.objects.filter()
    qs2 = Order.objects.filter()

@mock.patch('Order.objects.filter')
def test_method_to_test(self, mock_qs):
     mock_qs.return_value = MagicMock(side_effect=[Order(id=1), Order(id=2)])
     method_to_test()
但是查询没有返回
Order(id=1)
Order(id=2)
返回的是模拟对象。如何设置
副作用
以返回所需的对象。
我看到它在
@mock.patch
decorator内部设置
副作用,但我想在方法内部设置它。

模拟副作用=[顺序(id=1),顺序(id=2)]