如何解决如何在unittest python中使用mongomock
我尝试在测试中模拟我的Mongo数据库。我发现遵循了article,但不幸的是,我的测试写入了真实的mongo数据库,而不是被模拟。
我有创建database.py
的{{1}}文件:
PyMongo
我将from flask_pymongo import PyMongo
mongo = PyMongo()
文件中的mongo
变量导入应用程序中进行初始化:
__init__.py
我使用自定义Mongo类查找数据并将其插入mongo,这是我的控制器的示例:
import app.database as mongo_database
def create_app(env=None):
app = Flask(__name__)
...
app.config.from_object(config())
mongo_database.mongo.init_app(app)
这是我的@bp.route('/some-route',methods=['get'])
@jwt_required
def fetch_data():
...
cached_data = MongoCache.getInstance().get_data(lender_id,"lenders")
if cached_data:
return cached_data
...
MongoCache.getInstance().insert_data(lender_id,data,'lenders')
return data
课:
MongoCache
但是当我添加修补的PyMongo客户端时,它对我不起作用:
import app.database
@Singleton
class MongoCache:
def __init__(self):
self.db = app.database.mongo.db
...
def get_data(self,params,collection):
...
result = self.db[collection].find_one(params)
...
return result
def insert_data(self,response,collection):
...
try:
self.db[collection].insert_one(data)
except Exception as e:
logger.exception(str(e))
raise Exception(e)
tests.py
有人对我在做什么错有任何建议,我该如何解决?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。