Python 如何在烧瓶蓝图中对函数进行mock.patch?
我正在尝试使用Python 如何在烧瓶蓝图中对函数进行mock.patch?,python,flask,python-unittest,python-mock,Python,Flask,Python Unittest,Python Mock,我正在尝试使用unittest.mock库来修补Flask蓝图中的函数。具体来说,我正在尝试在蓝图中修补os模块。简化代码(不能提供全部/实际代码): test_route.py(我正在尝试运行的测试) server/index.py(创建Flask服务器的模块) server/routes/blueprint.py(Flask服务器使用的蓝图逻辑) 当我运行此命令时,os.listdir()没有得到修补。我得到“/some/path”的实际内容,而我真正想要的是模拟值: Actual
unittest.mock
库来修补Flask蓝图中的函数。具体来说,我正在尝试在蓝图中修补os
模块。简化代码(不能提供全部/实际代码):
test_route.py(我正在尝试运行的测试)
server/index.py(创建Flask服务器的模块)
server/routes/blueprint.py(Flask服务器使用的蓝图逻辑)
当我运行此命令时,os.listdir()没有得到修补。我得到“/some/path”的实际内容,而我真正想要的是模拟值:
Actual : ['/something1', '/some/other/thing', ...]
Expected : ['/mockedvalue']
我读过,但也许我还是犯了一个错误。在blueprint模块上进行修补似乎是合适的,但如果这是错误的,请提供任何指导或更正 如果设置
@mock.patch('server.routes.blueprint.os'))
def测试路径(自、模拟):
使用Server.app.app_context():
mockOS.listdir.return_value=['/mockedvalue']
res=client.post(“/some/url”)
from flask import Flask
from routes.blueprint import bp
def create_app():
app = Flask(__name__)
app.register_blueprint(bp)
#
# more code...
#
import os
from flask import Flask, Blueprint
bp = Blueprint('bp', __name__)
@bp.route('/some/url')
def run():
#
# code...
#
dirs = os.listdir('/some/path')
#
# more code...
#
Actual : ['/something1', '/some/other/thing', ...]
Expected : ['/mockedvalue']