Improved test runtime from 352 seconds to 59 seconds by implementing an in-memory sqlite DB and including an option to run migrations on this newly created database by adding a config option called run_migrations to the config_spec and passing it along in app.py to the setup_database function.
This commit is contained in:
@@ -110,14 +110,22 @@ def run_dbupdate(app_config, global_config):
|
||||
in the future, plugins)
|
||||
"""
|
||||
|
||||
# Set up the database
|
||||
db = setup_connection_and_db_from_config(app_config, migrations=True)
|
||||
#Run the migrations
|
||||
run_all_migrations(db, app_config, global_config)
|
||||
|
||||
|
||||
def run_all_migrations(db, app_config, global_config):
|
||||
"""
|
||||
Moved the migration part of run_dbupdate to a separate function so
|
||||
it can be used to initialize the database during tests.
|
||||
"""
|
||||
# Gather information from all media managers / projects
|
||||
dbdatas = gather_database_data(
|
||||
app_config['media_types'],
|
||||
global_config.get('plugins', {}).keys())
|
||||
|
||||
# Set up the database
|
||||
db = setup_connection_and_db_from_config(app_config, migrations=True)
|
||||
|
||||
Session = sessionmaker(bind=db.engine)
|
||||
|
||||
# Setup media managers for all dbdata, run init/migrate and print info
|
||||
|
||||
Reference in New Issue
Block a user