commit/galaxy-central: inithello: Removed unneeded log data from functional test error reports, use url_join to generate api URLs.
1 new commit in galaxy-central: https://bitbucket.org/galaxy/galaxy-central/commits/74aeac783988/ changeset: 74aeac783988 user: inithello date: 2013-02-28 20:41:53 summary: Removed unneeded log data from functional test error reports, use url_join to generate api URLs. affected #: 1 file diff -r f9ae3e1162ffd9aba37db4bdb0f849e36ed4ccd9 -r 74aeac7839881a47e691ab80bddaead0970590b8 test/install_and_test_tool_shed_repositories/functional_tests.py --- a/test/install_and_test_tool_shed_repositories/functional_tests.py +++ b/test/install_and_test_tool_shed_repositories/functional_tests.py @@ -37,6 +37,9 @@ # This should not be required, but it is under certain conditions, thanks to this bug: http://code.google.com/p/python-nose/issues/detail?id=284 eggs.require( "pysqlite" ) +import install_and_test_tool_shed_repositories.functional.test_install_repositories as test_install_repositories +import functional.test_toolbox as test_toolbox + import atexit, logging, os, os.path, sys, tempfile, simplejson import twill, unittest, time import sys, threading, random @@ -151,7 +154,11 @@ listing = file( location, 'r' ).read() elif source == 'url': assert tool_shed_api_key is not None, 'Cannot proceed without tool shed API key.' - params = urllib.urlencode( dict( tools_functionally_correct='false', do_not_test='false', downloadable='true', malicious='false' ) ) + params = urllib.urlencode( dict( tools_functionally_correct='false', + do_not_test='false', + downloadable='true', + malicious='false', + must_include_tools='true' ) ) api_url = get_api_url( base=location, parts=[ 'repository_revisions' ], params=params ) if format == 'json': return json_from_url( api_url ) @@ -177,11 +184,11 @@ def register_test_failure( url, metadata_id, test_errors ): params = dict( tools_functionally_correct='false', do_not_test='true', tool_test_errors=test_errors ) - return update( tool_shed_api_key, '%s' % ( url_join( galaxy_tool_shed_url, 'api', 'repository_revisions', metadata_id ) ), params ) + return update( tool_shed_api_key, '%s' % ( url_join( galaxy_tool_shed_url, 'api', 'repository_revisions', metadata_id ) ), params, return_formatted=False ) def register_test_success( url, metadata_id ): params = dict( tools_functionally_correct='true', do_not_test='false' ) - return update( tool_shed_api_key, '%s' % ( url_join( galaxy_tool_shed_url, 'api', 'repository_revisions', metadata_id ) ), params ) + return update( tool_shed_api_key, '%s' % ( url_join( galaxy_tool_shed_url, 'api', 'repository_revisions', metadata_id ) ), params, return_formatted=False ) def run_tests( test_config ): loader = nose.loader.TestLoader( config=test_config ) @@ -354,9 +361,6 @@ else: raise Exception( "Test HTTP server did not return '200 OK' after 10 tries" ) log.info( "Embedded galaxy web server started" ) - # ---- Load the modules to generate installation, testing, and uninstallation methods ------------------- - import install_and_test_tool_shed_repositories.functional.test_install_repositories as test_install_repositories - import functional.test_toolbox as test_toolbox if galaxy_test_proxy_port: log.info( "The embedded Galaxy application is running on %s:%s" % ( galaxy_test_host, galaxy_test_proxy_port ) ) else: @@ -365,7 +369,7 @@ success = False repository_status = {} try: - # Iterate through a list of repository info dicts + # Iterate through a list of repository info dicts. log.info( "Retrieving repositories to install from the URL:\n%s\n" % str( galaxy_tool_shed_url ) ) repositories_to_install = get_repositories_to_install( galaxy_tool_shed_url, source='url' ) log.info( "Retrieved %d repositories to install..." % len( repositories_to_install ) ) @@ -381,15 +385,15 @@ """ repository_id = repository_to_install_dict.get( 'repository_id', None ) changeset_revision = repository_to_install_dict.get( 'changeset_revision', None ) - metadata_revision_id = repository_to_install_dict[ 'id' ] + metadata_revision_id = repository_to_install_dict.get( 'id', None ) repository_to_install_dict[ 'tool_shed_url' ] = galaxy_tool_shed_url - repository_info = get_repository_info_from_api( galaxy_tool_shed_url, repository_to_install_dict ) + repository_info_dict = get_repository_info_from_api( galaxy_tool_shed_url, repository_to_install_dict ) # If a repository is deleted or malicious, we don't need to test it. - if repository_info[ 'deleted' ] or repository_info[ 'deprecated' ]: + if repository_info_dict[ 'deleted' ] or repository_info_dict[ 'deprecated' ]: log.info( "Skipping revision %s of repository id %s since it is either deleted or deprecated..." % ( str( changeset_revision ), str( repository_id ) ) ) continue log.info( "Installing and testing revision %s of repository id %s..." % ( str( changeset_revision ), str( repository_id ) ) ) - repository_dict = dict( repository_info.items() + repository_to_install_dict.items() ) + repository_dict = dict( repository_info_dict.items() + repository_to_install_dict.items() ) """ Each repository_dict looks something like: {'repository_id': '175812cd7caaf439', @@ -412,12 +416,11 @@ # If the installation succeeds, set up and run functional tests for this repository. This is equivalent to # sh run_functional_tests.sh -installed if success: - log.debug( 'Installation of %s succeeded, running any defined functional tests.' % repository_dict[ 'name' ] ) + log.debug( 'Installation of %s succeeded, running all defined functional tests.' % repository_dict[ 'name' ] ) # Parse the tool panel config to get the test-data path for this repository. if not os.path.exists( galaxy_shed_tools_dict ): file( galaxy_shed_tools_dict, 'w' ).write( to_json_string( dict() ) ) shed_tools_dict = parse_tool_panel_config( galaxy_shed_tool_conf_file, from_json_string( file( galaxy_shed_tools_dict, 'r' ).read() ) ) - log.debug( shed_tools_dict ) # Write this to a file, so the functional test framework can find it. file( galaxy_shed_tools_dict, 'w' ).write( to_json_string( shed_tools_dict ) ) # Set up the environment so that test.functional.test_toolbox can find the Galaxy server we configured in this framework. @@ -444,7 +447,7 @@ else: # If the functional tests fail, log the output and submit it to the tool shed whence the repository was installed. for failure in result.failures: - label = str( failure[0] ) + test_status = dict( test=str( failure[0] ) ) log_output = failure[1].replace( '\\n', '\n' ) log_output = re.sub( r'control \d+:.+', r'', log_output ) log_output = re.sub( r'\n+', r'\n', log_output ) @@ -454,6 +457,8 @@ for line in log_output.split( '\n' ): if line.startswith( 'Traceback' ): appending_to = 'traceback' + elif '>> end captured' in line: + continue elif 'request returned None from get_history' in line: continue elif '>> begin captured logging <<' in line: @@ -468,9 +473,10 @@ if appending_to not in tmp_output: tmp_output[ appending_to ] = [] tmp_output[ appending_to ].append( line ) - for output_type in tmp_output: - output[ output_type ] = '\n'.join( tmp_output[ output_type ] ) - test_errors.append( dict( test=label, output=output ) ) + for output_type in [ 'stderr', 'stdout', 'traceback' ]: + if output_type in tmp_output: + test_status[ output_type ] = '\n'.join( tmp_output[ output_type ] ) + test_errors.append( test_status ) if test_errors: repository_status[ 'test_environment' ] = get_test_environment() repository_status[ 'test_errors' ] = test_errors 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.
participants (1)
-
commits-noreply@bitbucket.org