不同的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、用户打开应用后...
今日焦点外挂技巧!无锡麻将多功... 今日焦点外挂技巧!无锡麻将多功能外挂技巧,无锡麻将总是存在有外挂技巧该软件可以轻松地帮助玩家将无锡麻...
最新技巧辅助器工具!天天黄冈麻... 最新技巧辅助器工具!天天黄冈麻将多功能辅助器工具,天天黄冈麻将本来真的是有辅助器工具1、许多玩家不知...
一起来探讨透视器app!丹东约... 一起来探讨透视器app!丹东约战麻将多功能透视器app,丹东约战麻将确实是真的有透视器app1、丹东...
详细说明开挂软件!趣玩齐齐哈尔... 详细说明开挂软件!趣玩齐齐哈尔多功能开挂软件,趣玩齐齐哈尔本来真的是有开挂软件1、上手简单,内置详细...
科技新动态外挂软件!情怀宜春麻... 科技新动态外挂软件!情怀宜春麻将多功能外挂软件,情怀宜春麻将真是真的是有外挂软件1、下载好情怀宜春麻...
最新技巧辅助方法!良人麻将多功... 最新技巧辅助方法!良人麻将多功能辅助方法,良人麻将确实是真的有辅助方法1、每一步都需要思考,不同水平...
2分钟细说开挂工具!蟾宫多功能... 2分钟细说开挂工具!蟾宫多功能开挂工具,蟾宫原来是有开挂工具1、不需要AI权限,帮助你快速的进行蟾宫...