Python,Pymongo,Mock:修补pymongo集合

时间:2018-02-25 01:25:57

标签: python mocking pymongo

我正在尝试使用collection修补pymongo mock.patch以进行测试。

因此,让我们考虑下面的两个数据库:第一个是生成代码连接的真实数据库。第二个仅用于测试目的。

from pymongo import MongoClient

mongo=MongoClient()
mongo.real_db.data.insert_many(
    [{'index': i , 'value':1} for i in range 100])

mongo.test_db.data.insert_many(
    [{'index': i , 'value':'test'} for i in range 100])

生产代码中的函数执行以下操作:

def get_data():
    print(list(mongo.real_db.data.find()))

我想在我的测试套件中修补该功能,以便它连接到测试数据库。

我试过

from mock import patch 

@patch('__main__.mongo.real_db.data', new=mongo.test_db.data)
def test_get_data():
    get_data()

test_get_data()

但它仍然连接到真正的数据库。 任何人都可以帮助学习如何使用测试版正确修补真实数据库?

0 个答案:

没有答案