我正在尝试使用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()
但它仍然连接到真正的数据库。 任何人都可以帮助学习如何使用测试版正确修补真实数据库?