Django ORM - mock values().filter() chain

后端 未结 2 1007
北海茫月
北海茫月 2021-01-01 21:40

I am trying to mock a chained call on the Djangos model.Manager() class. For now I want to mock the values() and filter() method.

2条回答
  •  北海茫月
    2021-01-01 22:29

    Try this:

    import mock
    from mocktest.mockme.models import MyModel
    
    class SimpleTest(TestCase):
        def test_chained_query(self):
            my_model_value_mock = mock.patch(MyModel.objects, 'value')
            my_model_value_mock.return_value.filter.return_value.count.return_value = 10000
            self.assertTrue(my_model_value_mock.return_value.filter.return_value.count.called)
    

提交回复
热议问题