Application factories

One of the major benefits of unit and functional testing is the ability to ensure, under a variety of different conditions and configurations, that your application behaves in a known and predictable manner. To this end, it will be a great advantage to have the ability to construct all the Flask application objects in our test suite. We can then easily provide different configurations to each of these objects and ensure that they exhibit the behavior that we expect.

Thankfully, this is entirely achievable using the application factory pattern, which is well supported by Flask. Let's add a create_app method to our application/__init__.py module:

from flask import Flask


def create_app(config=None):
    app = Flask(__name__)

 if ...

Get Flask Blueprints now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.