3 new commits in galaxy-central: https://bitbucket.org/galaxy/galaxy-central/commits/150df6515fc7/ Changeset: 150df6515fc7 User: natefoo Date: 2014-09-16 20:36:37 Summary: Fix config moves for the Tool Shed. Affected #: 1 file diff -r 5ba632c506feccdaf7d6c334ad82347f1ea92fb8 -r 150df6515fc709b12ba9096bef714967439f2f3a lib/galaxy/webapps/tool_shed/config.py --- a/lib/galaxy/webapps/tool_shed/config.py +++ b/lib/galaxy/webapps/tool_shed/config.py @@ -27,6 +27,10 @@ def __init__( self, **kwargs ): self.config_dict = kwargs self.root = kwargs.get( 'root_dir', '.' ) + + # Resolve paths of other config files + self.__parse_config_file_options( kwargs ) + # Collect the umask and primary gid from the environment self.umask = os.umask( 077 ) # get the current umask os.umask( self.umask ) # can't get w/o set, so set it back @@ -41,7 +45,6 @@ self.new_file_path = resolve_path( kwargs.get( "new_file_path", "database/tmp" ), self.root ) self.cookie_path = kwargs.get( "cookie_path", "/" ) self.enable_quotas = string_as_bool( kwargs.get( 'enable_quotas', False ) ) - self.datatypes_config = kwargs.get( 'datatypes_config_file', 'datatypes_conf.xml' ) self.test_conf = resolve_path( kwargs.get( "test_conf", "" ), self.root ) self.id_secret = kwargs.get( "id_secret", "USING THE DEFAULT IS NOT SECURE!" ) # Tool stuff @@ -51,8 +54,6 @@ self.tool_path = resolve_path( kwargs.get( "tool_path", "tools" ), self.root ) self.tool_secret = kwargs.get( "tool_secret", "" ) self.tool_data_path = resolve_path( kwargs.get( "tool_data_path", "shed-tool-data" ), os.getcwd() ) - self.tool_data_table_config_path = resolve_path( kwargs.get( 'tool_data_table_config_path', 'tool_data_table_conf.xml' ), self.root ) - self.shed_tool_data_table_config = resolve_path( kwargs.get( 'shed_tool_data_table_config', 'shed_tool_data_table_conf.xml' ), self.root ) self.integrated_tool_panel_config = resolve_path( kwargs.get( 'integrated_tool_panel_config', 'integrated_tool_panel.xml' ), self.root ) self.builds_file_path = resolve_path( kwargs.get( "builds_file_path", os.path.join( self.tool_data_path, 'shared', 'ucsc', 'builds.txt') ), self.root ) self.len_file_path = resolve_path( kwargs.get( "len_file_path", os.path.join( self.tool_data_path, 'shared','ucsc','chrom') ), self.root ) @@ -136,6 +137,47 @@ self.citation_cache_data_dir = resolve_path( kwargs.get( "citation_cache_data_dir", "database/tool_shed_citations/data" ), self.root ) self.citation_cache_lock_dir = resolve_path( kwargs.get( "citation_cache_lock_dir", "database/tool_shed_citations/locks" ), self.root ) + def __parse_config_file_options( self, kwargs ): + defaults = dict( + datatypes_config_file = [ 'datatypes_conf.xml', 'config/datatypes_conf.xml', 'config/datatypes_conf.xml.sample' ], + shed_tool_data_table_config = [ 'shed_tool_data_table_conf.xml', 'config/shed_tool_data_table_conf.xml' ], + ) + + listify_defaults = dict( + tool_data_table_config_path = [ 'tool_data_table_conf.xml', 'config/tool_data_table_conf.xml', 'config/tool_data_table_conf.xml.sample' ], + ) + + for var, defaults in defaults.items(): + if kwargs.get( var, None ) is not None: + path = kwargs.get( var ) + else: + for default in defaults: + if os.path.exists( resolve_path( default, self.root ) ): + path = default + break + else: + path = defaults[-1] + setattr( self, var, resolve_path( path, self.root ) ) + + for var, defaults in listify_defaults.items(): + paths = [] + if kwargs.get( var, None ) is not None: + paths = listify( kwargs.get( var ) ) + else: + for default in defaults: + for path in listify( default ): + if not os.path.exists( resolve_path( path, self.root ) ): + break + else: + paths = listify( default ) + break + else: + paths = listify( defaults[-1] ) + setattr( self, var, [ resolve_path( x, self.root ) for x in paths ] ) + + # Backwards compatibility for names used in too many places to fix + self.datatypes_config = self.datatypes_config_file + def get( self, key, default ): return self.config_dict.get( key, default ) https://bitbucket.org/galaxy/galaxy-central/commits/714857a48c7d/ Changeset: 714857a48c7d User: natefoo Date: 2014-09-16 20:55:38 Summary: Rename tool_shed_wsgi.ini.sample to tool_shed_wsgi.ini, fix static and other errors I created when moving it to config/ in the first place. Affected #: 8 files diff -r 150df6515fc709b12ba9096bef714967439f2f3a -r 714857a48c7d6607e6b7822035ddcf35707672a5 config/tool_shed.ini.sample --- /dev/null +++ b/config/tool_shed.ini.sample @@ -0,0 +1,114 @@ +# ---- HTTP Server ---------------------------------------------------------- + +[server:main] + +use = egg:Paste#http +port = 9009 + +# The address on which to listen. By default, only listen to localhost (the tool shed will not +# be accessible over the network). Use '0.0.0.0' to listen on all available network interfaces. +#host = 0.0.0.0 +host = 127.0.0.1 + +use_threadpool = true +threadpool_workers = 10 +# Set the number of seconds a thread can work before you should kill it (assuming it will never finish) to 3 hours. +threadpool_kill_thread_limit = 10800 + +# ---- Galaxy Webapps Community Interface ------------------------------------------------- + +[app:main] + +# Specifies the factory for the universe WSGI application +paste.app_factory = galaxy.webapps.tool_shed.buildapp:app_factory +log_level = DEBUG + +# Database connection +database_file = database/community.sqlite +# You may use a SQLAlchemy connection string to specify an external database instead +#database_connection = postgres:///community_test?host=/var/run/postgresql + +# Where the hgweb.config file is stored. The default is the Galaxy installation directory. +#hgweb_config_dir = None + +# Where tool shed repositories are stored. +file_path = database/community_files +# Temporary storage for additional datasets, this should be shared through the cluster +new_file_path = database/tmp + +# File containing old-style genome builds +#builds_file_path = tool-data/shared/ucsc/builds.txt + +# Session support (beaker) +use_beaker_session = True +session_type = memory +session_data_dir = %(here)s/database/beaker_sessions +session_key = galaxysessions +session_secret = changethisinproduction + +# -- Users and Security + +# Galaxy encodes various internal values when these values will be output in +# some format (for example, in a URL or cookie). You should set a key to be +# used by the algorithm that encodes and decodes these values. It can be any +# string. If left unchanged, anyone could construct a cookie that would grant +# them access to others' sessions. +id_secret = changethisinproductiontoo + +# User authentication can be delegated to an upstream proxy server (usually +# Apache). The upstream proxy should set a REMOTE_USER header in the request. +# Enabling remote user disables regular logins. For more information, see: +# https://wiki.galaxyproject.org/Admin/Config/ApacheProxy +#use_remote_user = False + +# Configuration for debugging middleware +debug = true +use_lint = false + +# NEVER enable this on a public site (even test or QA) +# use_interactive = true + +# this should be a comma-separated list of valid Galaxy users +#admin_users = user1@example.org,user2@example.org + +# Force everyone to log in (disable anonymous access) +require_login = False + +# path to sendmail +sendmail_path = /usr/sbin/sendmail + +# Number of saved tool test results produced by the install and test framework for each repository. +#num_tool_test_results_saved = 5 + +# For use by email messages sent from the tool shed +#smtp_server = smtp.your_tool_shed_server +#email_from = your_tool_shed_email@server + +# The URL linked by the "Support" link in the "Help" menu. +#support_url = https://wiki.galaxyproject.org/Support + +# Write thread status periodically to 'heartbeat.log' (careful, uses disk space rapidly!) +## use_heartbeat = True + +# Profiling middleware (cProfile based) +## use_profile = True + +# Enable creation of Galaxy flavor Docker Image +#enable_galaxy_flavor_docker_image = False + +# Use the new iframe / javascript based layout +use_new_layout = true + +# Show a message box under the masthead. +#message_box_visible = False +#message_box_content = None +#message_box_class = info + +# Serving static files (needed if running standalone) +#static_enabled = True +#static_cache_time = 360 +#static_dir = static/ +#static_images_dir = static/images +#static_favicon_dir = static/favicon.ico +#static_scripts_dir = static/scripts/ +#static_style_dir = static/style/blue diff -r 150df6515fc709b12ba9096bef714967439f2f3a -r 714857a48c7d6607e6b7822035ddcf35707672a5 config/tool_shed_wsgi.ini.sample --- a/config/tool_shed_wsgi.ini.sample +++ /dev/null @@ -1,114 +0,0 @@ -# ---- HTTP Server ---------------------------------------------------------- - -[server:main] - -use = egg:Paste#http -port = 9009 - -# The address on which to listen. By default, only listen to localhost (the tool shed will not -# be accessible over the network). Use '0.0.0.0' to listen on all available network interfaces. -#host = 0.0.0.0 -host = 127.0.0.1 - -use_threadpool = true -threadpool_workers = 10 -# Set the number of seconds a thread can work before you should kill it (assuming it will never finish) to 3 hours. -threadpool_kill_thread_limit = 10800 - -# ---- Galaxy Webapps Community Interface ------------------------------------------------- - -[app:main] - -# Specifies the factory for the universe WSGI application -paste.app_factory = galaxy.webapps.tool_shed.buildapp:app_factory -log_level = DEBUG - -# Database connection -database_file = database/community.sqlite -# You may use a SQLAlchemy connection string to specify an external database instead -#database_connection = postgres:///community_test?host=/var/run/postgresql - -# Where the hgweb.config file is stored. The default is the Galaxy installation directory. -#hgweb_config_dir = None - -# Where tool shed repositories are stored. -file_path = database/community_files -# Temporary storage for additional datasets, this should be shared through the cluster -new_file_path = database/tmp - -# File containing old-style genome builds -#builds_file_path = tool-data/shared/ucsc/builds.txt - -# Session support (beaker) -use_beaker_session = True -session_type = memory -session_data_dir = %(here)s/database/beaker_sessions -session_key = galaxysessions -session_secret = changethisinproduction - -# -- Users and Security - -# Galaxy encodes various internal values when these values will be output in -# some format (for example, in a URL or cookie). You should set a key to be -# used by the algorithm that encodes and decodes these values. It can be any -# string. If left unchanged, anyone could construct a cookie that would grant -# them access to others' sessions. -id_secret = changethisinproductiontoo - -# User authentication can be delegated to an upstream proxy server (usually -# Apache). The upstream proxy should set a REMOTE_USER header in the request. -# Enabling remote user disables regular logins. For more information, see: -# https://wiki.galaxyproject.org/Admin/Config/ApacheProxy -#use_remote_user = False - -# Configuration for debugging middleware -debug = true -use_lint = false - -# NEVER enable this on a public site (even test or QA) -# use_interactive = true - -# this should be a comma-separated list of valid Galaxy users -#admin_users = user1@example.org,user2@example.org - -# Force everyone to log in (disable anonymous access) -require_login = False - -# path to sendmail -sendmail_path = /usr/sbin/sendmail - -# Number of saved tool test results produced by the install and test framework for each repository. -#num_tool_test_results_saved = 5 - -# For use by email messages sent from the tool shed -#smtp_server = smtp.your_tool_shed_server -#email_from = your_tool_shed_email@server - -# The URL linked by the "Support" link in the "Help" menu. -#support_url = https://wiki.galaxyproject.org/Support - -# Write thread status periodically to 'heartbeat.log' (careful, uses disk space rapidly!) -## use_heartbeat = True - -# Profiling middleware (cProfile based) -## use_profile = True - -# Enable creation of Galaxy flavor Docker Image -#enable_galaxy_flavor_docker_image = False - -# Use the new iframe / javascript based layout -use_new_layout = true - -# Show a message box under the masthead. -#message_box_visible = False -#message_box_content = None -#message_box_class = info - -# Serving static files (needed if running standalone) -static_enabled = True -static_cache_time = 360 -static_dir = %(here)s/static/ -static_images_dir = %(here)s/static/images -static_favicon_dir = %(here)s/static/favicon.ico -static_scripts_dir = %(here)s/static/scripts/ -static_style_dir = %(here)s/static/june_2007_style/blue diff -r 150df6515fc709b12ba9096bef714967439f2f3a -r 714857a48c7d6607e6b7822035ddcf35707672a5 lib/galaxy/model/orm/scripts.py --- a/lib/galaxy/model/orm/scripts.py +++ b/lib/galaxy/model/orm/scripts.py @@ -31,7 +31,7 @@ "tool_shed": { 'repo': 'lib/galaxy/webapps/tool_shed/model/migrate', - 'config_file': 'tool_shed_wsgi.ini', + 'config_file': 'config/tool_shed.ini', 'default_sqlite_file': './database/community.sqlite', }, "install": @@ -79,7 +79,7 @@ ... p.add_section('app:main') ... p.set('app:main', property, value) ... with open(os.path.join(config_dir, path), 'w') as f: p.write(f) - >>> write_ini('tool_shed_wsgi.ini', 'database_connection', 'sqlite:///pg/testdb1') + >>> write_ini('tool_shed.ini', 'database_connection', 'sqlite:///pg/testdb1') >>> config = get_config(['manage_db.py', 'tool_shed'], cwd=config_dir) >>> config['repo'] 'lib/galaxy/webapps/tool_shed/model/migrate' diff -r 150df6515fc709b12ba9096bef714967439f2f3a -r 714857a48c7d6607e6b7822035ddcf35707672a5 lib/galaxy/webapps/tool_shed/app.py --- a/lib/galaxy/webapps/tool_shed/app.py +++ b/lib/galaxy/webapps/tool_shed/app.py @@ -20,7 +20,7 @@ def __init__( self, **kwd ): print >> sys.stderr, "python path is: " + ", ".join( sys.path ) self.name = "tool_shed" - # Read the tool_shed_wsgi.ini configuration file and check for errors. + # Read the tool_shed.ini configuration file and check for errors. self.config = config.Configuration( **kwd ) self.config.check() config.configure_logging( self.config ) diff -r 150df6515fc709b12ba9096bef714967439f2f3a -r 714857a48c7d6607e6b7822035ddcf35707672a5 lib/galaxy/webapps/tool_shed/buildapp.py --- a/lib/galaxy/webapps/tool_shed/buildapp.py +++ b/lib/galaxy/webapps/tool_shed/buildapp.py @@ -220,11 +220,12 @@ # Send to dynamic app by default urlmap["/"] = app # Define static mappings from config - urlmap["/static"] = Static( conf.get( "static_dir" ), cache_time ) - urlmap["/images"] = Static( conf.get( "static_images_dir" ), cache_time ) - urlmap["/static/scripts"] = Static( conf.get( "static_scripts_dir" ), cache_time ) - urlmap["/static/style"] = Static( conf.get( "static_style_dir" ), cache_time ) - urlmap["/favicon.ico"] = Static( conf.get( "static_favicon_dir" ), cache_time ) + urlmap["/static"] = Static( conf.get( "static_dir", "./static/" ), cache_time ) + urlmap["/images"] = Static( conf.get( "static_images_dir", "./static/images" ), cache_time ) + urlmap["/static/scripts"] = Static( conf.get( "static_scripts_dir", "./static/scripts/" ), cache_time ) + urlmap["/static/style"] = Static( conf.get( "static_style_dir", "./static/style/blue" ), cache_time ) + urlmap["/favicon.ico"] = Static( conf.get( "static_favicon_dir", "./static/favicon.ico" ), cache_time ) + urlmap["/robots.txt"] = Static( conf.get( "static_robots_txt", "./static/robots.txt" ), cache_time ) # URL mapper becomes the root webapp return urlmap diff -r 150df6515fc709b12ba9096bef714967439f2f3a -r 714857a48c7d6607e6b7822035ddcf35707672a5 lib/tool_shed/scripts/bootstrap_tool_shed/bootstrap_tool_shed.sh --- a/lib/tool_shed/scripts/bootstrap_tool_shed/bootstrap_tool_shed.sh +++ b/lib/tool_shed/scripts/bootstrap_tool_shed/bootstrap_tool_shed.sh @@ -1,8 +1,10 @@ #!/bin/bash +: ${TOOL_SHED_CONFIG_FILE:=config/tool_shed.ini.sample} + stop_err() { echo $1 - python ./scripts/paster.py serve tool_shed_wsgi.ini --pid-file=tool_shed_bootstrap.pid --log-file=tool_shed_bootstrap.log --stop-daemon + python ./scripts/paster.py serve ${TOOL_SHED_CONFIG_FILE} --pid-file=tool_shed_bootstrap.pid --log-file=tool_shed_bootstrap.log --stop-daemon exit 1 } @@ -14,7 +16,7 @@ log_file="lib/tool_shed/scripts/bootstrap_tool_shed/bootstrap.log" -database_result=`python ./lib/tool_shed/scripts/bootstrap_tool_shed/bootstrap_util.py --execute check_db --config_file tool_shed_wsgi.ini` +database_result=`python ./lib/tool_shed/scripts/bootstrap_tool_shed/bootstrap_util.py --execute check_db --config_file ${TOOL_SHED_CONFIG_FILE}` if [ $? -ne 0 ] ; then stop_err "Unable to bootstrap tool shed. $database_result" @@ -31,8 +33,8 @@ fi if [ $? -eq 0 ] ; then - user_auth=`python ./lib/tool_shed/scripts/bootstrap_tool_shed/bootstrap_util.py --execute admin_user_info --config_file tool_shed_wsgi.ini` - local_shed_url=`python ./lib/tool_shed/scripts/bootstrap_tool_shed/bootstrap_util.py --execute get_url --config_file tool_shed_wsgi.ini` + user_auth=`python ./lib/tool_shed/scripts/bootstrap_tool_shed/bootstrap_util.py --execute admin_user_info --config_file ${TOOL_SHED_CONFIG_FILE}` + local_shed_url=`python ./lib/tool_shed/scripts/bootstrap_tool_shed/bootstrap_util.py --execute get_url --config_file ${TOOL_SHED_CONFIG_FILE}` fi admin_user_name=`echo $user_auth | awk 'BEGIN { FS="__SEP__" } ; { print \$1 }'` @@ -41,18 +43,18 @@ echo -n "Creating user '$admin_user_name' with email address '$admin_user_email'..." -python lib/tool_shed/scripts/bootstrap_tool_shed/create_user_with_api_key.py tool_shed_wsgi.ini >> $log_file +python lib/tool_shed/scripts/bootstrap_tool_shed/create_user_with_api_key.py ${TOOL_SHED_CONFIG_FILE} >> $log_file echo " done." -sed -i "s/#admin_users = user1@example.org,user2@example.org/admin_users = $admin_user_email/" tool_shed_wsgi.ini +sed -i "s/#admin_users = user1@example.org,user2@example.org/admin_users = $admin_user_email/" ${TOOL_SHED_CONFIG_FILE} echo -n "Starting tool shed in order to populate users and categories... " if [ -f tool_shed_bootstrap.pid ] ; then stop_err "A bootstrap process is already running." fi -python ./scripts/paster.py serve tool_shed_wsgi.ini --pid-file=tool_shed_bootstrap.pid --log-file=tool_shed_bootstrap.log --daemon > /dev/null +python ./scripts/paster.py serve ${TOOL_SHED_CONFIG_FILE} --pid-file=tool_shed_bootstrap.pid --log-file=tool_shed_bootstrap.log --daemon > /dev/null shed_pid=`cat tool_shed_bootstrap.pid` @@ -94,6 +96,6 @@ fi echo "Bootstrap complete, shutting down temporary tool shed process. A log has been saved to tool_shed_bootstrap.log" -python ./scripts/paster.py serve tool_shed_wsgi.ini --pid-file=tool_shed_bootstrap.pid --log-file=tool_shed_bootstrap.log --stop-daemon +python ./scripts/paster.py serve ${TOOL_SHED_CONFIG_FILE} --pid-file=tool_shed_bootstrap.pid --log-file=tool_shed_bootstrap.log --stop-daemon -exit 0 \ No newline at end of file +exit 0 diff -r 150df6515fc709b12ba9096bef714967439f2f3a -r 714857a48c7d6607e6b7822035ddcf35707672a5 lib/tool_shed/scripts/bootstrap_tool_shed/bootstrap_util.py --- a/lib/tool_shed/scripts/bootstrap_tool_shed/bootstrap_util.py +++ b/lib/tool_shed/scripts/bootstrap_tool_shed/bootstrap_util.py @@ -25,7 +25,7 @@ db_file = config_parser.get( 'app:main', 'database_file' ) dburi = "sqlite:///%s?isolation_level=IMMEDIATE" % db_file else: - print 'The database configuration setting is missing from the tool_shed_wsgi.ini file. Add this setting before attempting to bootstrap.' + print 'The database configuration setting is missing from the tool_shed.ini file. Add this setting before attempting to bootstrap.' exit(1) sa_session = None @@ -122,7 +122,7 @@ return 1 parser = argparse.ArgumentParser() -parser.add_argument( '-c', '--config_file', dest='config', action='store', default='tool_shed_wsgi.ini' ) +parser.add_argument( '-c', '--config_file', dest='config', action='store', default='config/tool_shed.ini.sample' ) parser.add_argument( '-e', '--execute', dest='method', action='store', default='check_db' ) args = parser.parse_args() diff -r 150df6515fc709b12ba9096bef714967439f2f3a -r 714857a48c7d6607e6b7822035ddcf35707672a5 run_tool_shed.sh --- a/run_tool_shed.sh +++ b/run_tool_shed.sh @@ -12,4 +12,15 @@ args=`echo $@ | sed "s#-\?-bootstrap_from_tool_shed $tool_shed##"` fi -python ./scripts/paster.py serve tool_shed_wsgi.ini --pid-file=tool_shed_webapp.pid --log-file=tool_shed_webapp.log $args +if [ -z "$TOOL_SHED_CONFIG_FILE" ]; then + if [ -f tool_shed_wsgi.ini ]; then + TOOL_SHED_CONFIG_FILE=tool_shed_wsgi.ini + elif [ -f config/tool_shed.ini ]; then + TOOL_SHED_CONFIG_FILE=config/tool_shed.ini + else + TOOL_SHED_CONFIG_FILE=config/tool_shed.ini.sample + fi + export TOOL_SHED_CONFIG_FILE +fi + +python ./scripts/paster.py serve $TOOL_SHED_CONFIG_FILE --pid-file=tool_shed_webapp.pid --log-file=tool_shed_webapp.log $args https://bitbucket.org/galaxy/galaxy-central/commits/d682014dc25a/ Changeset: d682014dc25a User: natefoo Date: 2014-09-16 20:56:57 Summary: merge. Affected #: 2 files diff -r 714857a48c7d6607e6b7822035ddcf35707672a5 -r d682014dc25a03118fd16065cd5900863c9b95f9 test/api/test_libraries.py --- a/test/api/test_libraries.py +++ b/test/api/test_libraries.py @@ -43,7 +43,7 @@ library_dataset = show().json() self._assert_has_keys( library_dataset, "peek", "data_type" ) assert library_dataset[ "peek" ].find("create_test") >= 0 - assert library_dataset[ "data_type" ] == "txt" + assert library_dataset[ "file_ext" ] == "txt", library_dataset[ "file_ext" ] def _create_folder( self, library ): create_data = dict( diff -r 714857a48c7d6607e6b7822035ddcf35707672a5 -r d682014dc25a03118fd16065cd5900863c9b95f9 test/api/test_workflows.py --- a/test/api/test_workflows.py +++ b/test/api/test_workflows.py @@ -26,9 +26,9 @@ self.dataset_populator = DatasetPopulator( self.galaxy_interactor ) self.dataset_collection_populator = DatasetCollectionPopulator( self.galaxy_interactor ) - def test_show_invalid_is_404( self ): - show_response = self._get( "workflow/%s" % self._random_key() ) - self._assert_status_code_is( show_response, 404 ) + def test_show_invalid_key_is_400( self ): + show_response = self._get( "workflows/%s" % self._random_key() ) + self._assert_status_code_is( show_response, 400 ) def test_cannot_show_private_workflow( self ): workflow_id = self.workflow_populator.simple_workflow( "test_not_importportable" ) @@ -134,12 +134,12 @@ run_workflow_response = self._post( "workflows", data=workflow_request ) self._assert_status_code_is( run_workflow_response, 403 ) - def test_404_on_invalid_workflow( self ): + def test_400_on_invalid_workflow_id( self ): workflow = self.workflow_populator.load_workflow( name="test_for_run_does_not_exist" ) workflow_request, history_id = self._setup_workflow_run( workflow ) workflow_request[ "workflow_id" ] = self._random_key() run_workflow_response = self._post( "workflows", data=workflow_request ) - self._assert_status_code_is( run_workflow_response, 404 ) + self._assert_status_code_is( run_workflow_response, 400 ) def test_cannot_run_against_other_users_history( self ): workflow = self.workflow_populator.load_workflow( name="test_for_run_does_not_exist" ) @@ -558,21 +558,6 @@ for step in usage_details[ "steps" ]: self._assert_has_keys( step, "workflow_step_id", "order_index", "id" ) - @skip_without_tool( "cat1" ) - def test_post_job_action( self ): - """ Tests both import and execution of post job actions. - """ - workflow = self.workflow_populator.load_workflow( name="test_for_pja_run", add_pja=True ) - workflow_request, history_id = self._setup_workflow_run( workflow ) - run_workflow_response = self._post( "workflows", data=workflow_request ) - self._assert_status_code_is( run_workflow_response, 200 ) - self.dataset_populator.wait_for_history( history_id, assert_ok=True ) - time.sleep(.1) # Give another little bit of time for rename (needed?) - contents = self._get( "histories/%s/contents" % history_id ).json() - # loading workflow with add_pja=True causes workflow output to be - # renamed to 'the_new_name'. - assert "the_new_name" in map( lambda hda: hda[ "name" ], contents ) - def _invocation_details( self, workflow_id, invocation_id ): invocation_details_response = self._get( "workflows/%s/usage/%s" % ( workflow_id, invocation_id ) ) self._assert_status_code_is( invocation_details_response, 200 ) Repository URL: https://bitbucket.org/galaxy/galaxy-central/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email.