Files
galaxy/test/unit/data/dataset_collections/test_structure.py
T

75 lines
3.2 KiB
Python

from galaxy.model.dataset_collections.structure import get_structure
from galaxy.model.dataset_collections.type_description import CollectionTypeDescriptionFactory
from .test_matching import (
list_of_lists_instance,
list_of_paired_and_unpaired_instance,
list_paired_instance,
pair_instance,
)
factory = CollectionTypeDescriptionFactory(None)
def test_get_structure_simple():
paired_type_description = factory.for_collection_type("paired")
tree = get_structure(pair_instance(), paired_type_description)
assert len(tree.children) == 2
assert tree.children[0][0] == "left" # why not forward?
assert tree.children[0][1].is_leaf
def test_get_structure_list_paired_over_paired():
paired_type_description = factory.for_collection_type("list:paired")
tree = get_structure(list_paired_instance(), paired_type_description, "paired")
assert tree.collection_type_description.collection_type == "list"
assert len(tree.children) == 3
assert tree.children[0][0] == "data1"
assert tree.children[0][1].is_leaf
def test_get_structure_list_of_lists():
list_of_lists_type_description = factory.for_collection_type("list:list")
tree = get_structure(list_of_lists_instance(), list_of_lists_type_description)
assert tree.collection_type_description.collection_type == "list:list"
assert len(tree.children) == 2
assert tree.children[0][0] == "outer1"
assert not tree.children[0][1].is_leaf
def test_get_structure_list_of_lists_over_list():
list_of_lists_type_description = factory.for_collection_type("list:list")
tree = get_structure(list_of_lists_instance(), list_of_lists_type_description, "list")
assert tree.collection_type_description.collection_type == "list"
assert len(tree.children) == 2
assert tree.children[0][0] == "outer1"
assert tree.children[0][1].is_leaf
def test_get_structure_list_paired_or_unpaired():
list_pair_or_unpaired_description = factory.for_collection_type("list:paired_or_unpaired")
tree = get_structure(list_of_paired_and_unpaired_instance(), list_pair_or_unpaired_description)
assert tree.collection_type_description.collection_type == "list:paired_or_unpaired"
assert len(tree.children) == 2
assert tree.children[0][0] == "el1"
assert not tree.children[0][1].is_leaf
def test_get_structure_list_paired_or_unpaired_over_paired_or_unpaired():
list_pair_or_unpaired_description = factory.for_collection_type("list:paired_or_unpaired")
tree = get_structure(
list_of_paired_and_unpaired_instance(), list_pair_or_unpaired_description, "paired_or_unpaired"
)
assert tree.collection_type_description.collection_type == "list"
assert len(tree.children) == 2
assert tree.children[0][0] == "el1"
assert tree.children[0][1].is_leaf
def test_get_structure_list_of_lists_over_single_datasests():
list_of_lists_type_description = factory.for_collection_type("list:list")
tree = get_structure(list_of_lists_instance(), list_of_lists_type_description, "single_datasets")
assert tree.collection_type_description.collection_type == "list:list"
assert len(tree.children) == 2
assert tree.children[0][0] == "outer1"
assert not tree.children[0][1].is_leaf