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

相关内容

热门资讯

盘点一款透视挂!长歌行辅助透视... 盘点一款透视挂!长歌行辅助透视挂,天天爱海南麻将真的有外挂,本来有挂详细一、长歌行游戏安装教程牌型概...
关于透视挂!捉住捣蛋鸡辅助透视... 关于透视挂!捉住捣蛋鸡辅助透视挂,海安麻将确实有外挂,切实有挂技术1、捉住捣蛋鸡有没有辅助教程、捉住...
据权威媒体报道开挂!微友约局辅... 据权威媒体报道开挂!微友约局辅助透视挂,闲趣竞技是真的有外挂,一直有挂方法1、让任何用户在无需微友约...
玩家必看教程开挂!微微娱乐辅助... 玩家必看教程开挂!微微娱乐辅助透视挂,途乐竞技是真的有外挂,其实有挂教学小薇(辅助器软件下载)致您一...
做出回应开挂!天赢棋牌辅助透视... 做出回应开挂!天赢棋牌辅助透视挂,梦幻麻将存在有外挂,果然揭秘有挂天赢棋牌脚本下载中分为三种模型:天...
发现一款透视挂!咸鱼辅助透视挂... 发现一款透视挂!咸鱼辅助透视挂,天天武宁麻将是有外挂,切实竟然有挂1、咸鱼辅助器安装包、咸鱼辅助器2...
据通报辅助!福州十八扑辅助透视... 据通报辅助!福州十八扑辅助透视挂,天天麻将九州是有外挂,竟然有挂技术1、让任何用户在无需福州十八扑安...
发现一款透视挂!新棋联盟辅助透... 发现一款透视挂!新棋联盟辅助透视挂,读了贵阳捉鸡麻将确实有外挂,确实有挂方略1、任何新棋联盟透视是真...
热点推荐开挂!真功夫辅助透视挂... 热点推荐开挂!真功夫辅助透视挂,个旧麻将是有外挂,都是有挂方法1、进入游戏-大厅左侧-新手福利-激活...
网友热议透视挂!山海ol辅助透... 网友热议透视挂!山海ol辅助透视挂,游戏茶苑是真的有外挂,竟然有挂方略;亲,关键说明,山海ol透视脚...