Files
galaxy/test/unit/tools/test_tool_dependency_description.py
T
John Chilton 22bddab240 Implement serializable class that can describe full dependency context for remote dependency resolution.
Previously LWR jut serialized tool requirements, by transitioning to this class LWR should be able to resolve tool shed installed packages as well - requiring the additional repository and tool dependency context.
2014-05-13 00:13:02 -05:00

45 lines
1.6 KiB
Python

from galaxy.model import tool_shed_install
from galaxy.tools.deps import requirements
from galaxy.tools.deps import dependencies
def test_serialization():
repository = tool_shed_install.ToolShedRepository(
owner="devteam",
name="tophat",
installed_changeset_revision="abcdefghijk",
)
dependency = tool_shed_install.ToolDependency(
name="tophat",
version="2.0",
type="package",
status=tool_shed_install.ToolDependency.installation_status.INSTALLED,
)
dependency.tool_shed_repository = repository
tool_requirement = requirements.ToolRequirement(
name="tophat",
version="2.0",
type="package",
)
descript = dependencies.DependenciesDescription(
requirements=[tool_requirement],
installed_tool_dependencies=[dependency],
)
result_descript = dependencies.DependenciesDescription.from_dict(
descript.to_dict()
)
result_requirement = result_descript.requirements[0]
assert result_requirement.name == "tophat"
assert result_requirement.version == "2.0"
assert result_requirement.type == "package"
result_tool_shed_dependency = result_descript.installed_tool_dependencies[0]
result_tool_shed_dependency.name = "tophat"
result_tool_shed_dependency.version = "2.0"
result_tool_shed_dependency.type = "package"
result_tool_shed_repository = result_tool_shed_dependency.tool_shed_repository
result_tool_shed_repository.name = "tophat"
result_tool_shed_repository.owner = "devteam"
result_tool_shed_repository.installed_changeset_revision = "abcdefghijk"