不同的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)。每个测试客户端都在其构造函数中获得了所属应用实例的上下文。这确保了每个客户端都在独立的应用环境中运行,从而消除了客户端之间的影响。

相关内容

热门资讯

透视实锤"wejok... 透视实锤"wejoker辅助软件视频"详细辅助2025教程(辅助软件价格软件);亲真的是有正版授权,...
透视新版"pokem... 透视新版"pokemmo辅助器手机版下载"详细辅助教你攻略(可以看底牌技巧);小薇(透视辅助)致您一...
透视美元局"哈糖大菠... 透视美元局"哈糖大菠萝助手"详细辅助必赢方法(透视底牌脚本软件);1分钟了解详细教程(微信 1367...
透视app"hhpo... 1、透视app"hhpoker视频巡查真的假的"详细辅助技巧教程(有透视底牌软件)。2、hhpoke...
透视智能ai"约局吧... 透视智能ai"约局吧是否有挂"详细辅助微扑克教程(免费脚本咨询技巧);科技安装教程;13670430...
透视科技"aapok... 透视科技"aapoker怎么提高中牌率"详细辅助普及教程(好友局透视技巧)是由北京得aapoker怎...
透视透视"hh po... 透视透视"hh poker插件下载"详细辅助可靠教程(一直输的号能继续打透明)1、许多玩家不知道hh...
透视安卓版"clou... 1、透视安卓版"cloudpoker作弊"详细辅助新2025版(有机器人辅助)。2、cloudpok...
透视插件"wpk官网... 透视插件"wpk官网下载链接"详细辅助2025新版技巧(有辅助教程)是一款可以让一直输的玩家,快速成...
透视了解"wepok... 透视了解"wepoker俱乐部辅助器"详细辅助必赢方法(htx矩阵辅助透视),支持语音通讯、好友开房...