From cf154ccd7f8cd60b618a99d3c18150e5364999f3 Mon Sep 17 00:00:00 2001 From: Greg Von Kuster Date: Wed, 8 Jan 2014 21:15:31 -0500 Subject: [PATCH] Handle issues with invalid dicts received when from the tool shed api. --- .../install_and_test_tool_shed_repositories/base/util.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/install_and_test_tool_shed_repositories/base/util.py b/test/install_and_test_tool_shed_repositories/base/util.py index 5e1355e849e..f630604bc70 100644 --- a/test/install_and_test_tool_shed_repositories/base/util.py +++ b/test/install_and_test_tool_shed_repositories/base/util.py @@ -469,7 +469,14 @@ def get_repository_dependencies_for_changeset_revision( tool_shed_url, encoded_r def get_repository_dict( url, repository_dict ): error_message = '' - parts = [ 'api', 'repositories', repository_dict[ 'repository_id' ] ] + if not isinstance( repository_dict, dict ): + error_message = 'Invalid repository_dict received: %s' % str( repository_dict ) + return None, error_message + repository_id = repository_dict.get( 'repository_id', None ) + if repository_id is None: + error_message = 'Invalid repository_dict does not contain a repository_id entry: %s' % str( repository_dict ) + return None, error_message + parts = [ 'api', 'repositories', repository_id ] api_url = get_api_url( base=url, parts=parts ) extended_dict, error_message = json_from_url( api_url ) if error_message: