Warning
This document is for an old release of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for tool_shed.test.functional.test_0550_metadata_updated_dependencies
import logging
from ..base import common
from ..base.twilltestcase import ShedTwillTestCase
log = logging.getLogger(__name__)
repositories = dict(
freebayes=dict(
name="package_freebayes_0550",
description="Description for package_freebayes_0550",
long_description="Long description for package_freebayes_0550",
),
samtools=dict(
name="package_samtools_0550",
description="Description for package_samtools_0550",
long_description="Long description for package_samtools_0550",
),
filtering=dict(
name="filtering_0550",
description="Description for filtering_0550",
long_description="Long description for filtering_0550",
),
)
category_name = "Test 0550"
category_description = "Verify metadata updates"
"""
1. Create repository package_freebayes_0550.
2. Create repository package_samtools_0550.
3. Create repository filtering_0550.
4. Create dependency on package_freebayes_0550 for filtering_0550.
5. Create dependency on package_samtools_0550 for filtering_0550.
6. Update package_freebayes_0550 and package_samtools_0550.
5. Load /api/repositories/{filtering_0550}.id/metadata and verify contents.
"""
[docs]class TestGetUpdatedMetadata(ShedTwillTestCase):
"""Verify that updated repositories still have correct dependency links."""
[docs] def test_0000_initiate_users(self):
"""Create necessary user accounts."""
self.login(email=common.test_user_1_email, username=common.test_user_1_name)
self.login(email=common.admin_email, username=common.admin_username)
[docs] def test_0005_freebayes_repository(self):
"""Create and populate package_freebayes_0550."""
category = self.create_category(name=category_name, description=category_description)
self.login(email=common.test_user_1_email, username=common.test_user_1_name)
# Create a repository named package_freebayes_0550 owned by user1.
freebayes_repository = self.get_or_create_repository(
name=repositories["freebayes"]["name"],
description=repositories["freebayes"]["description"],
long_description=repositories["freebayes"]["long_description"],
owner=common.test_user_1_name,
category=category,
strings_displayed=[],
)
self.commit_tar_to_repository(
freebayes_repository,
"0550_files/package_freebayes_1_0550.tgz",
)
if not self.is_v2:
# Visit the manage repository page for package_freebayes_0_5_9_0100.
self.display_manage_repository_page(
freebayes_repository, strings_displayed=["Tool dependencies", "will not be", "to this repository"]
)
[docs] def test_0010_create_samtools_repository(self):
"""Create and populate the package_samtools_0550 repository."""
category = self.create_category(name=category_name, description=category_description)
samtools_repository = self.get_or_create_repository(
name=repositories["samtools"]["name"],
description=repositories["samtools"]["description"],
long_description=repositories["samtools"]["long_description"],
owner=common.test_user_1_name,
category=category,
strings_displayed=[],
)
self.commit_tar_to_repository(
samtools_repository,
"0550_files/package_samtools_1_0550.tgz",
commit_message="Uploaded samtools 1.0.",
)
[docs] def test_0015_create_filtering_repository(self):
"""Create the filtering_0550 repository."""
category = self.create_category(name=category_name, description=category_description)
repository = self.get_or_create_repository(
name=repositories["filtering"]["name"],
description=repositories["filtering"]["description"],
long_description=repositories["filtering"]["long_description"],
owner=common.test_user_1_name,
category=category,
strings_displayed=[],
)
self.commit_tar_to_repository(
repository,
"0550_files/filtering_1.0.tgz",
commit_message="Uploaded filtering 1.0.",
)
[docs] def test_0020_check_repository_dependency(self):
"""Make filtering depend on samtools and freebayes."""
freebayes = self._get_repository_by_name_and_owner(repositories["freebayes"]["name"], common.test_user_1_name)
samtools = self._get_repository_by_name_and_owner(repositories["samtools"]["name"], common.test_user_1_name)
filtering = self._get_repository_by_name_and_owner(repositories["filtering"]["name"], common.test_user_1_name)
strings_displayed = [freebayes.id, samtools.id]
if not self.is_v2:
self.display_manage_repository_page(filtering, strings_displayed=strings_displayed)
[docs] def test_0025_update_dependent_repositories(self):
"""
Update freebayes and samtools, load the API endpoint again.
"""
freebayes = self._get_repository_by_name_and_owner(repositories["freebayes"]["name"], common.test_user_1_name)
samtools = self._get_repository_by_name_and_owner(repositories["samtools"]["name"], common.test_user_1_name)
filtering = self._get_repository_by_name_and_owner(repositories["filtering"]["name"], common.test_user_1_name)
self.commit_tar_to_repository(
freebayes,
"0550_files/package_freebayes_2_0550.tgz",
commit_message="Uploaded freebayes 2.0.",
)
self.commit_tar_to_repository(
samtools,
"0550_files/package_samtools_2_0550.tgz",
commit_message="Uploaded samtools 2.0.",
)
strings_displayed = [
repositories["freebayes"]["name"],
repositories["samtools"]["name"],
repositories["filtering"]["name"],
]
self.fetch_repository_metadata(filtering, strings_displayed=strings_displayed, strings_not_displayed=None)