Files
galaxy/test/unit/tool_util/test_toolbox_view_parsing.py
T
2022-02-03 07:42:20 -05:00

109 lines
2.8 KiB
Python

import pydantic
from galaxy.tool_util.toolbox.views.definitions import (
StaticToolBoxView,
StaticToolBoxViewTypeEnum,
)
EXAMPLE_1 = {
"id": "rna",
"name": "RNA Seq",
"type": "activity",
"items": [
{
"type": "workflow",
"id": "12345abcd",
},
{
"type": "section",
"name": "My Cool Section",
},
{
"type": "label",
"text": "My Cool Label",
"id": "my-cool-label-id",
},
{
"type": "tool",
"id": "cat1",
},
],
}
def test_root_parsing():
view = StaticToolBoxView.from_dict(EXAMPLE_1)
assert view.id == "rna"
assert view.name == "RNA Seq"
assert view.view_type == StaticToolBoxViewTypeEnum.activity
assert len(view.items) == 4
workflow_item = view.items[0]
assert workflow_item.content_type == "workflow"
assert workflow_item.id == "12345abcd"
section_item = view.items[1]
assert section_item.content_type == "section"
assert section_item.id is None
assert section_item.name == "My Cool Section"
outer_label_item = view.items[2]
assert outer_label_item.content_type == "label"
assert outer_label_item.id == "my-cool-label-id"
assert outer_label_item.text == "My Cool Label"
output_tool_item = view.items[3]
assert output_tool_item.content_type == "tool"
assert output_tool_item.id == "cat1"
def test_section_parsing():
view = StaticToolBoxView.from_dict(
{
"id": "rna",
"name": "RNA Seq",
"type": "activity",
"items": [
{
"type": "section",
"name": "My Cool Section",
"items": [
{
"type": "workflow",
"id": "123456",
}
],
},
],
}
)
section_item = view.items[0]
assert len(section_item.items) == 1
assert section_item.items[0].content_type == "workflow"
def test_no_nested_sections():
exception_raised = False
try:
StaticToolBoxView.from_dict(
{
"id": "rna",
"name": "RNA Seq",
"type": "activity",
"items": [
{
"type": "section",
"name": "My Cool Section",
"items": [
{
"type": "section",
"name": "My Cool Inner Section",
},
],
},
],
}
)
except pydantic.ValidationError:
exception_raised = True
assert exception_raised