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:
Emily O'Leary
2013-06-25 20:57:50 -04:00
parent c1b342ba95
commit 4a698535bc
7 changed files with 32 additions and 16 deletions

View File

@@ -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