From 3741102e3915efccf00214e4dbb06aa4b53baeca Mon Sep 17 00:00:00 2001 From: Dave Bouvier Date: Tue, 12 Nov 2013 09:25:32 -0500 Subject: [PATCH] Add more informative logging for repository installation errors when installing and testing repositories. Limit uninstallation of tool dependencies in an error state to those that are displayed on the "Uninstall tool dependencies" page. --- .../base/twilltestcase.py | 6 ++++-- .../functional_tests.py | 6 +++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/test/install_and_test_tool_shed_repositories/base/twilltestcase.py b/test/install_and_test_tool_shed_repositories/base/twilltestcase.py index 7f6232956ac..18d81c85d35 100644 --- a/test/install_and_test_tool_shed_repositories/base/twilltestcase.py +++ b/test/install_and_test_tool_shed_repositories/base/twilltestcase.py @@ -163,6 +163,8 @@ class InstallTestRepository( TwillTestCase ): url = '/admin_toolshed/uninstall_tool_dependencies?repository_id=%s&inst_td_ids=%s&operation=uninstall' % \ ( encoded_repository_id, tool_dependency_ids ) self.visit_url( url ) - tc.fv( 'uninstall_tool_dependencies', 'tool_dependency_ids', tool_dependency_ids ) - tc.submit( 'uninstall_tool_dependencies_button' ) + html = self.last_page() + if 'uninstall_tool_dependencies' in html: + tc.fv( 'uninstall_tool_dependencies', 'tool_dependency_ids', tool_dependency_ids ) + tc.submit( 'uninstall_tool_dependencies_button' ) \ No newline at end of file diff --git a/test/install_and_test_tool_shed_repositories/functional_tests.py b/test/install_and_test_tool_shed_repositories/functional_tests.py index 6becea41058..38a4483cffd 100644 --- a/test/install_and_test_tool_shed_repositories/functional_tests.py +++ b/test/install_and_test_tool_shed_repositories/functional_tests.py @@ -1037,16 +1037,20 @@ def main(): # If a tool dependency fails to install correctly, this should be considered an installation error, # and functional tests should be skipped, since the tool dependency needs to be correctly installed # for the test to be considered reliable. - log.error( 'One or more tool dependencies of this repository are marked as missing.' ) + log.error( 'One or more dependencies of this repository are marked as missing.' ) log.error( 'Updating repository and skipping functional tests.' ) # In keeping with the standard display layout, add the error message to the dict for each tool individually. for dependency in failed_tool_dependencies: + log.error( 'Missing tool dependency %s of type %s version %s: %s' % \ + ( str( dependency.name ), str( dependency.type ), str( dependency.version ), str( dependency.error_message ) ) ) test_result = dict( type=dependency.type, name=dependency.name, version=dependency.version, error_message=dependency.error_message ) repository_status[ 'installation_errors' ][ 'tool_dependencies' ].append( test_result ) for dependency in repository.repository_dependencies_with_installation_errors: + log.error( 'Missing repository dependency %s changeset revision %s owned by %s: %s' % \ + ( str( dependency.name ), str( dependency.changeset_revision ), str( dependency.owner ), str( dependency.error_message ) ) ) test_result = dict( tool_shed=dependency.tool_shed, name=dependency.name, owner=dependency.owner,