不同的Werkzeug测试客户端会相互影响。为什么?
创始人
2025-01-08 20:30:03
0

这是由于 Werkzeug 测试客户端共用全局应用实例所致。解决方法是使用不同的应用实例来创建不同的测试客户端。以下是示例代码:

from flask import Flask
from flask.testing import FlaskClient
from werkzeug.test import Client, EnvironBuilder

app = Flask(__name__)


class CustomClient(FlaskClient):
    def __init__(self, *args, **kwargs):
        with app.app_context():
            super().__init__(*args, **kwargs)


with app.app_context():
    # create separate application instances for each client
    app1 = Flask(__name__)
    app2 = Flask(__name__)

    @app1.route('/')
    def index1():
        return "hello from app1"

    @app2.route('/')
    def index2():
        return "hello from app2"

    # create separate clients using respective application instances
    client1 = CustomClient(app1, response_wrapper=app1.make_response)
    client2 = CustomClient(app2, response_wrapper=app2.make_response)

    # test each client individually
    response1 = client1.get('/')
    assert response1.data == b"hello from app1"

    response2 = client2.get('/')
    assert response2.data == b"hello from app2"

在这个示例中,我们创建了两个不同的 Flask 应用实例(app1 和 app2),并使用其分别创建了两个测试客户端(client1 和 client2)。每个测试客户端都在其构造函数中获得了所属应用实例的上下文。这确保了每个客户端都在独立的应用环境中运行,从而消除了客户端之间的影响。

相关内容

热门资讯

微乐小程序黑科技免费!微乐自建... 您好,这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在这款游戏中打...
微乐小程序透视辅助!微乐自建房... 微乐小程序透视辅助!微乐自建房脚本下载(开挂)挂-总是教你是有挂;1)有没有挂:进一步探索有辅助吗大...
微信小程序微乐破解器!微信小程... 微信小程序微乐破解器!微信小程序微乐辅助器免费版(开挂)软件-其实解迷是真的挂1、完成辅助器v3.3...
微乐小程序黑科技免费!微乐小程... 微乐小程序黑科技免费!微乐小程序辅助工具哪里下载(开挂)软件-竟然透视存在有挂1、在插件功能辅助器技...
微乐小程序真的有挂!微乐小程序... 微乐小程序真的有挂!微乐小程序辅助多少钱(开挂)技巧-切实揭露是有挂1、进入游戏-大厅左侧-新手福利...
微乐小程序存在有挂!微乐挖坑内... 微乐小程序存在有挂!微乐挖坑内购破解(开挂)软件-总是总结存在有挂1)有没有挂:进一步探索有辅助吗大...
微乐小程序真的有挂!微乐小程序... 微乐小程序真的有挂!微乐小程序插件免费(开挂)app-好像必备存在有挂1、首先打开辅助器下载最新版本...
微乐小程序黑科技免费!微乐透视... 微乐小程序黑科技免费!微乐透视辅助功能插件下载(开挂)技巧-一贯揭露存在有挂1、金币登录送、破产送、...
微乐小程序黑科技!2025微乐... 微乐小程序黑科技!2025微乐小程序黑科技(开挂)插件-真是曝光真的是有挂1、该软件可以轻松地帮助玩...
微乐小程序真的有挂!手机微乐小... 微乐小程序真的有挂!手机微乐小程序游戏破解器(开挂)攻略-总是了解是有挂;1、点击下载安装,脚本分类...