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']