mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Add api test case to test page creation from workflow invocation report
This commit is contained in:
@@ -14,11 +14,11 @@ from six.moves.html_parser import HTMLParser
|
||||
from galaxy import exceptions, model
|
||||
from galaxy.managers import base, sharable
|
||||
from galaxy.managers.hdas import HDAManager
|
||||
from galaxy.managers.workflows import WorkflowsManager
|
||||
from galaxy.managers.markdown_util import (
|
||||
ready_galaxy_markdown_for_export,
|
||||
ready_galaxy_markdown_for_import,
|
||||
)
|
||||
from galaxy.managers.workflows import WorkflowsManager
|
||||
from galaxy.model.item_attrs import UsesAnnotations
|
||||
from galaxy.util import unicodify
|
||||
from galaxy.util.sanitize_html import sanitize_html
|
||||
@@ -73,7 +73,7 @@ class PageManager(sharable.SharableModelManager, UsesAnnotations):
|
||||
"""
|
||||
"""
|
||||
super().__init__(app, *args, **kwargs)
|
||||
workflow_manager = WorkflowsManager(app)
|
||||
self.workflow_manager = WorkflowsManager(app)
|
||||
|
||||
def copy(self, trans, page, user, **kwargs):
|
||||
"""
|
||||
@@ -98,7 +98,7 @@ class PageManager(sharable.SharableModelManager, UsesAnnotations):
|
||||
content_format = "markdown"
|
||||
else:
|
||||
content = payload.get("content", "")
|
||||
content_format = payload.get("content_format", "markdown")
|
||||
content_format = payload.get("content_format", "html")
|
||||
content = self.rewrite_content_for_import(trans, content, content_format)
|
||||
|
||||
# Create the new stored page
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
from requests import delete
|
||||
|
||||
from galaxy.exceptions import error_codes
|
||||
from galaxy_test.base.populators import DatasetPopulator
|
||||
from galaxy_test.base.populators import DatasetPopulator, skip_without_tool, WorkflowPopulator
|
||||
from ._framework import ApiTestCase
|
||||
|
||||
|
||||
@@ -43,6 +43,57 @@ class PageApiTestCase(BasePageApiTestCase):
|
||||
response_json = self._create_valid_page_with_slug("mypage")
|
||||
self._assert_has_keys(response_json, "slug", "title", "id")
|
||||
|
||||
@skip_without_tool("cat")
|
||||
def test_create_from_report(self):
|
||||
dataset_populator = DatasetPopulator(self.galaxy_interactor)
|
||||
workflow_populator = WorkflowPopulator(self.galaxy_interactor)
|
||||
test_data = """
|
||||
input_1:
|
||||
value: 1.bed
|
||||
type: File
|
||||
"""
|
||||
with dataset_populator.test_history() as history_id:
|
||||
summary = workflow_populator.run_workflow("""
|
||||
class: GalaxyWorkflow
|
||||
inputs:
|
||||
input_1: data
|
||||
outputs:
|
||||
output_1:
|
||||
outputSource: first_cat/out_file1
|
||||
steps:
|
||||
first_cat:
|
||||
tool_id: cat
|
||||
in:
|
||||
input1: input_1
|
||||
""", test_data=test_data, history_id=history_id)
|
||||
|
||||
workflow_id = summary.workflow_id
|
||||
invocation_id = summary.invocation_id
|
||||
report_json = workflow_populator.workflow_report_json(workflow_id, invocation_id)
|
||||
assert "markdown" in report_json
|
||||
self._assert_has_keys(report_json , "markdown", "render_format")
|
||||
assert report_json["render_format"] == "markdown"
|
||||
markdown_content = report_json["markdown"]
|
||||
page_request = dict(
|
||||
slug="invocation-report",
|
||||
title="Invocation Report",
|
||||
invocation_id=invocation_id,
|
||||
)
|
||||
page_response = self._post("pages", page_request)
|
||||
self._assert_status_code_is(page_response, 200)
|
||||
page_response = page_response.json()
|
||||
show_response = self._get("pages/%s" % page_response['id'])
|
||||
self._assert_status_code_is(show_response, 200)
|
||||
show_json = show_response.json()
|
||||
self._assert_has_keys(show_json, "slug", "title", "id")
|
||||
self.assertEqual(show_json["slug"], "invocation-report")
|
||||
self.assertEqual(show_json["title"], "Invocation Report")
|
||||
self.assertEqual(show_json["content_format"], "markdown")
|
||||
markdown_content = show_json["content"]
|
||||
assert "## Workflow Outputs" in markdown_content
|
||||
assert "## Workflow Inputs" in markdown_content
|
||||
assert "## About This Report" not in markdown_content
|
||||
|
||||
def test_index(self):
|
||||
create_response_json = self._create_valid_page_with_slug("indexpage")
|
||||
assert self._users_index_has_page_with_id(create_response_json["id"])
|
||||
|
||||
Reference in New Issue
Block a user