From fe460008faf33a673185672ee2f34b26b8878ea5 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Mon, 28 Mar 2016 13:28:44 -0400 Subject: [PATCH] More work on syncrhonized test database configuration... for test drivers. --- scripts/functional_tests.py | 12 +++--------- test/base/driver_util.py | 9 ++++++++- test/tool_shed/functional_tests.py | 27 +++++++++------------------ 3 files changed, 20 insertions(+), 28 deletions(-) diff --git a/scripts/functional_tests.py b/scripts/functional_tests.py index 659a882eb54..6950f1b661e 100644 --- a/scripts/functional_tests.py +++ b/scripts/functional_tests.py @@ -110,8 +110,6 @@ def main(): if galaxy_test_tmp_dir is None: galaxy_test_tmp_dir = tempfile.mkdtemp() - database_auto_migrate = False - if start_server: tempdir = tempfile.mkdtemp( dir=galaxy_test_tmp_dir ) # Configure the database path. @@ -121,7 +119,7 @@ def main(): use_test_file_dir=not testing_shed_tools, ) - database_connection, database_auto_migrate = driver_util.database_conf(galaxy_db_path) + database_conf = driver_util.database_conf(galaxy_db_path) install_database_conf = driver_util.install_database_conf(galaxy_db_path, default_merged=True) # Data Manager testing temp path @@ -133,9 +131,7 @@ def main(): master_api_key = get_master_api_key() app = None if start_server: - kwargs = dict( database_connection=database_connection, - database_auto_migrate=database_auto_migrate, - shed_tool_data_table_config=shed_tool_data_table_config, + kwargs = dict( shed_tool_data_table_config=shed_tool_data_table_config, test_conf="test.conf", tool_config_file=tool_config_file, tool_data_table_config_path=tool_data_table_config_path, @@ -147,10 +143,8 @@ def main(): auto_configure_logging=logging_config_file is None, data_manager_config_file=data_manager_config_file ) kwargs.update(galaxy_config) + kwargs.update(database_conf) kwargs.update(install_database_conf) - if not database_connection.startswith( 'sqlite://' ): - kwargs[ 'database_engine_option_max_overflow' ] = '20' - kwargs[ 'database_engine_option_pool_size' ] = '10' if datatypes_conf_override: kwargs[ 'datatypes_config_file' ] = datatypes_conf_override # If the user has passed in a path for the .ini file, do not overwrite it. diff --git a/test/base/driver_util.py b/test/base/driver_util.py index 8f215554ee2..ddcec16fa31 100644 --- a/test/base/driver_util.py +++ b/test/base/driver_util.py @@ -196,7 +196,14 @@ def database_conf(db_path, prefix="GALAXY"): copy_database_template(os.environ[template_var], db_path) database_auto_migrate = True database_connection = 'sqlite:///%s' % db_path - return database_connection, database_auto_migrate + config = { + "database_connection": database_connection, + "database_auto_migrate": database_auto_migrate + } + if not database_connection.startswith("sqlite://"): + config["database_engine_option_max_overflow"] = "20" + config["database_engine_option_pool_size"] = "10" + return config def install_database_conf(db_path, default_merged=False): diff --git a/test/tool_shed/functional_tests.py b/test/tool_shed/functional_tests.py index f735c294846..881fdb58658 100644 --- a/test/tool_shed/functional_tests.py +++ b/test/tool_shed/functional_tests.py @@ -87,16 +87,14 @@ def main(): hgweb_config_dir = hgweb_config_file_path os.environ[ 'TEST_HG_WEB_CONFIG_DIR' ] = hgweb_config_dir print "Directory location for hgweb.config:", hgweb_config_dir - toolshed_database_connection, toolshed_database_auto_migrate = driver_util.database_conf(shed_db_path, prefix="TOOL_SHED") - galaxy_database_connection, galaxy_database_auto_migrate = driver_util.database_conf(galaxy_db_path) + toolshed_database_conf = driver_util.database_conf(shed_db_path, prefix="TOOL_SHED") + galaxy_database_conf = driver_util.database_conf(galaxy_db_path) install_database_conf = driver_util.install_database_conf(galaxy_db_path, default_merged=False) tool_shed_global_conf = driver_util.get_webapp_global_conf() tool_shed_global_conf[ '__file__' ] = 'tool_shed_wsgi.ini.sample' kwargs = dict( admin_users='test@bx.psu.edu', allow_user_creation=True, allow_user_deletion=True, - database_connection=toolshed_database_connection, - database_auto_migrate=toolshed_database_auto_migrate, datatype_converters_config_file='datatype_converters_conf.xml.sample', file_path=shed_file_path, global_conf=tool_shed_global_conf, @@ -113,9 +111,9 @@ def main(): tool_parse_help=False, tool_data_table_config_path=galaxy_tool_data_table_conf_file, use_heartbeat=False ) - - print "Tool shed database connection:", toolshed_database_connection - print "Galaxy database connection:", galaxy_database_connection + kwargs.update(toolshed_database_conf) + print "Tool shed database connection:", toolshed_database_conf["database_connection"] + print "Galaxy database connection:", galaxy_database_conf["database_connection"] # Generate the tool_data_table_conf.xml file. file( galaxy_tool_data_table_conf_file, 'w' ).write( tool_data_table_conf_xml_template ) @@ -126,15 +124,13 @@ def main(): toolshedapp = None kwargs[ 'global_conf' ] = tool_shed_global_conf - if not toolshed_database_connection.startswith( 'sqlite://' ): - kwargs[ 'database_engine_option_pool_size' ] = '10' - toolshedapp = ToolshedUniverseApplication( **kwargs ) database_contexts.tool_shed_context = toolshedapp.model.context log.info( "Embedded Toolshed application started" ) # ---- Run tool shed webserver ------------------------------------------------------ - tool_shed_global_conf[ 'database_connection' ] = toolshed_database_connection + # TODO: Needed for hg middleware ('lib/galaxy/webapps/tool_shed/framework/middleware/hg.py') + tool_shed_global_conf[ 'database_connection' ] = kwargs["database_connection"] toolshedwebapp = toolshedbuildapp.app_factory( tool_shed_global_conf, use_translogger=False, static_enabled=True, @@ -167,9 +163,7 @@ def main(): galaxy_global_conf = driver_util.get_webapp_global_conf() galaxy_global_conf[ '__file__' ] = 'config/galaxy.ini.sample' - kwargs = dict( database_connection=galaxy_database_connection, - database_auto_migrate=galaxy_database_auto_migrate, - enable_tool_shed_check=True, + kwargs = dict( enable_tool_shed_check=True, global_conf=galaxy_global_conf, hours_between_check=0.001, migrated_tools_config=galaxy_migrated_tool_conf_file, @@ -181,18 +175,15 @@ def main(): tool_sheds_config_file=galaxy_tool_sheds_conf_file, tool_data_table_config_path=galaxy_tool_data_table_conf_file ) kwargs.update(driver_util.setup_galaxy_config(galaxy_db_path, use_test_file_dir=False)) + kwargs.update(galaxy_database_conf) kwargs.update(install_database_conf) # ---- Build Galaxy Application -------------------------------------------------- - if not galaxy_database_connection.startswith( 'sqlite://' ): - kwargs[ 'database_engine_option_pool_size' ] = '10' - kwargs[ 'database_engine_option_max_overflow' ] = '20' galaxyapp = GalaxyUniverseApplication( **kwargs ) log.info( "Embedded Galaxy application started" ) # ---- Run galaxy webserver ------------------------------------------------------ galaxy_server = None - galaxy_global_conf[ 'database_file' ] = galaxy_database_connection galaxywebapp = galaxybuildapp.app_factory( galaxy_global_conf, use_translogger=False, static_enabled=True,