Nik*_*nyh 6 python werkzeug flask
我们可以通过test_client以下方式获取样品申请:
class MyTestCase(unittest.TestCase):
@classmethod
def setUpClass(cls):
my_app.app.config['TESTING'] = True
cls.client = my_app.app.test_client()
Run Code Online (Sandbox Code Playgroud)
但是,如果我们用app包装DispatcherMiddleware- 我们会得到错误
AttributeError: 'DispatcherMiddleware' object has no attribute 'test_client'.
有没有办法测试烧瓶应用的组成?
我们希望能够做到这样的事情:
cls.client = my_app.all_apps.test_client()
Run Code Online (Sandbox Code Playgroud)
什么all_apps是中间件像:
all_apps = DispatcherMiddleware(my_app, {
'/backend': backend_app,
})
Run Code Online (Sandbox Code Playgroud)
要将WSGI中间件添加到Flask应用程序,请包装并替换应用程序的wsgi_app属性.您正在使用对其他WSGI应用程序的引用替换对Flask应用程序的引用,这显然不具有相同的属性.通过替换wsgi_app,您保留对Flask应用程序的引用,但更改支持它的WSGI可调用对象.
app.wsgi_app = DispatcherMiddleware(app.wsgi_app, {
'/backend': backend_app
})
Run Code Online (Sandbox Code Playgroud)