diff --git a/lib/galaxy/webapps/tool_shed/api/repositories.py b/lib/galaxy/webapps/tool_shed/api/repositories.py index 81c97911638..2f3dbc2cf15 100644 --- a/lib/galaxy/webapps/tool_shed/api/repositories.py +++ b/lib/galaxy/webapps/tool_shed/api/repositories.py @@ -853,7 +853,7 @@ class RepositoriesController( BaseAPIController ): else: metadata_dict[ 'repository_dependencies' ] = [] if metadata.includes_tool_dependencies and recursive: - metadata_dict[ 'tool_dependencies' ] = repository.get_tool_dependencies( changehash ) + metadata_dict[ 'tool_dependencies' ] = repository.get_tool_dependencies( self.app, changehash ) else: metadata_dict[ 'tool_dependencies' ] = {} if metadata.includes_tools: diff --git a/lib/galaxy/webapps/tool_shed/controllers/repository.py b/lib/galaxy/webapps/tool_shed/controllers/repository.py index f10bd2865c8..a50dafe60e2 100644 --- a/lib/galaxy/webapps/tool_shed/controllers/repository.py +++ b/lib/galaxy/webapps/tool_shed/controllers/repository.py @@ -1465,8 +1465,8 @@ class RepositoryController( BaseUIController, ratings_util.ItemRatings ): owner = kwd.get( 'owner', None ) changeset_revision = kwd.get( 'changeset_revision', None ) repository = repository_util.get_repository_by_name_and_owner( trans.app, name, owner ) - dependencies = repository.get_tool_dependencies( changeset_revision ) - if dependencies is not None: + dependencies = repository.get_tool_dependencies( trans.app, changeset_revision ) + if len( dependencies ) > 0: return encoding_util.tool_shed_encode( dependencies ) return '' diff --git a/lib/galaxy/webapps/tool_shed/model/__init__.py b/lib/galaxy/webapps/tool_shed/model/__init__.py index 61969117d78..8935aa24d33 100644 --- a/lib/galaxy/webapps/tool_shed/model/__init__.py +++ b/lib/galaxy/webapps/tool_shed/model/__init__.py @@ -245,11 +245,13 @@ class Repository( object, Dictifiable ): def get_type_class( self, app ): return app.repository_types_registry.get_class_by_label( self.type ) - def get_tool_dependencies( self, changeset_revision ): + def get_tool_dependencies( self, app, changeset_revision ): + repo = hg.repository( ui.ui(), self.repo_path( app ) ) + changeset_revision = metadata_util.get_next_downloadable_changeset_revision( self, repo, changeset_revision ) for downloadable_revision in self.downloadable_revisions: if downloadable_revision.changeset_revision == changeset_revision: - return downloadable_revision.metadata.get( 'tool_dependencies', [] ) - return [] + return downloadable_revision.metadata.get( 'tool_dependencies', {} ) + return {} def installable_revisions( self, app, sort_revisions=True ): return metadata_util.get_metadata_revisions( self, diff --git a/lib/tool_shed/util/metadata_util.py b/lib/tool_shed/util/metadata_util.py index 308247c3ae3..f204058eea4 100644 --- a/lib/tool_shed/util/metadata_util.py +++ b/lib/tool_shed/util/metadata_util.py @@ -32,7 +32,7 @@ def get_all_dependencies( app, metadata_entry, processed_dependency_links=[] ): dependency_dict[ 'tools' ] = dependency_metadata.metadata[ 'tools' ] dependency_dict[ 'repository_dependencies' ] = [] if dependency_dict['includes_tool_dependencies']: - dependency_dict['tool_dependencies'] = repository.get_tool_dependencies( dependency_dict['changeset_revision'] ) + dependency_dict['tool_dependencies'] = repository.get_tool_dependencies( app, dependency_dict['changeset_revision'] ) if dependency_dict['has_repository_dependencies']: dependency_dict['repository_dependencies'] = get_all_dependencies( app, dependency_metadata, processed_dependency_links ) else: diff --git a/test/shed_functional/functional/test_1400_review_migration_stages.py b/test/shed_functional/functional/test_1400_review_migration_stages.py index 8499b687be8..926f30ab2f4 100644 --- a/test/shed_functional/functional/test_1400_review_migration_stages.py +++ b/test/shed_functional/functional/test_1400_review_migration_stages.py @@ -29,7 +29,7 @@ class TestToolMigrationStages( ShedTwillTestCase ): 'blast_datatypes', 'bwa_wrappers', 'picard', 'lastz', 'lastz_paired_reads', 'bowtie_color_wrappers', 'bowtie_wrappers', 'xy_plot', 'bam_to_sam' ] - migrated_tool_dependencies = [ 'emboss', '5.0.0', 'freebayes', '0.9.4_9696d0ce8a962f7bb61c4791be5ce44312b81cf8', + migrated_tool_dependencies = [ 'emboss', '5.0.0', 'freebayes', '0.9.4_a46483351fd0196637614121868fb5c386612b55', 'samtools', '0.1.18', 'blast+', '2.2.26+', 'bwa', '0.5.9', 'picard', '1.56.0', 'lastz', '1.02.00', 'bowtie', '0.12.7', 'FreeBayes requires g++', 'ncurses', 'zlib', 'blast.ncbi.nlm.nih.gov', 'fastx_toolkit', '0.0.13', 'samtools', '0.1.16', 'cufflinks',