Add api test case to test page creation from workflow invocation report

This commit is contained in:
guerler
2020-09-19 09:52:56 -04:00
parent dccd4d1684
commit f8ee8cf8a2
2 changed files with 55 additions and 4 deletions
+3 -3
View File
@@ -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
+52 -1
View File
@@ -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"])