We can obtain test_client
for sample application in way like:
class MyTestCase(unittest.TestCase):
@classmethod
def setUpClass(cls):
my_app.app.config['TESTING'] = True
cls.client = my_app.app.test_client()
However, if we wrap app with DispatcherMiddleware
- we will get error like
AttributeError: 'DispatcherMiddleware' object has no attribute 'test_client'
.
Are there way to test composition of flask applications?
We want to be able to do something like:
cls.client = my_app.all_apps.test_client()
When all_apps
is middleware like:
all_apps = DispatcherMiddleware(my_app, {
'/backend': backend_app,
})
To add WSGI middleware to a Flask app, wrap and replace the app's wsgi_app
attribute. You're replacing the reference to the Flask app with a reference to some other WSGI app, which obviously won't have the same properties. By replacing wsgi_app
, you retain the reference to the Flask app but change the WSGI callable that backs it.
app.wsgi_app = DispatcherMiddleware(app.wsgi_app, {
'/backend': backend_app.wsgi_app,
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With