diff env/lib/python3.7/site-packages/cwltool/tests/test_pack.py @ 5:9b1c78e6ba9c draft default tip

"planemo upload commit 6c0a8142489327ece472c84e558c47da711a9142"
author shellac
date Mon, 01 Jun 2020 08:59:25 -0400
parents 79f47841a781
children
line wrap: on
line diff
--- a/env/lib/python3.7/site-packages/cwltool/tests/test_pack.py	Thu May 14 16:47:39 2020 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +0,0 @@
-import json
-from ruamel import yaml
-import os
-import tempfile
-from functools import partial
-
-from six import StringIO
-import pytest
-
-import cwltool.pack
-import cwltool.workflow
-from cwltool import load_tool
-from cwltool.load_tool import fetch_document, resolve_and_validate_document
-from cwltool.main import main, make_relative, print_pack
-from cwltool.pathmapper import adjustDirObjs, adjustFileObjs
-from cwltool.resolver import tool_resolver
-from cwltool.context import LoadingContext
-
-from .util import get_data, needs_docker
-
-
-def test_pack():
-    loadingContext, workflowobj, uri = fetch_document(get_data("tests/wf/revsort.cwl"))
-    loadingContext.do_update = False
-    loadingContext, uri = resolve_and_validate_document(
-        loadingContext, workflowobj, uri)
-    processobj = loadingContext.loader.resolve_ref(uri)[0]
-
-    with open(get_data("tests/wf/expect_packed.cwl")) as packed_file:
-        expect_packed = yaml.safe_load(packed_file)
-
-    packed = cwltool.pack.pack(loadingContext.loader, processobj, uri, loadingContext.metadata)
-    adjustFileObjs(packed, partial(make_relative, os.path.abspath(get_data("tests/wf"))))
-    adjustDirObjs(packed, partial(make_relative, os.path.abspath(get_data("tests/wf"))))
-
-    assert "$schemas" in packed
-    assert len(packed["$schemas"]) == len(expect_packed["$schemas"])
-    del packed["$schemas"]
-    del expect_packed["$schemas"]
-
-    assert packed == expect_packed
-
-
-def test_pack_single_tool():
-    loadingContext, workflowobj, uri = fetch_document(
-        get_data("tests/wf/formattest.cwl"))
-    loadingContext.do_update = False
-    loadingContext, uri = resolve_and_validate_document(
-        loadingContext, workflowobj, uri)
-    processobj = loadingContext.loader.resolve_ref(uri)[0]
-
-    packed = cwltool.pack.pack(loadingContext.loader, processobj, uri, loadingContext.metadata)
-    assert "$schemas" in packed
-
-def test_pack_rewrites():
-    rewrites = {}
-
-    loadingContext, workflowobj, uri = fetch_document(get_data("tests/wf/default-wf5.cwl"))
-    loadingContext.do_update = False
-    loadingContext, uri = resolve_and_validate_document(
-        loadingContext, workflowobj, uri)
-    processobj = loadingContext.loader.resolve_ref(uri)[0]
-
-    cwltool.pack.pack(loadingContext.loader, processobj, uri, loadingContext.metadata, rewrite_out=rewrites)
-
-    assert len(rewrites) == 6
-
-cwl_missing_version_paths = [
-    "tests/wf/hello_single_tool.cwl",
-    "tests/wf/hello-workflow.cwl"
-]
-
-@pytest.mark.parametrize('cwl_path', cwl_missing_version_paths)
-def test_pack_missing_cwlVersion(cwl_path):
-    """Ensure the generated pack output is not missing the `cwlVersion` in case of single tool workflow and single step workflow."""
-    # Testing single tool workflow
-    loadingContext, workflowobj, uri = fetch_document(get_data(cwl_path))
-    loadingContext.do_update = False
-    loadingContext, uri = resolve_and_validate_document(
-        loadingContext, workflowobj, uri)
-    processobj = loadingContext.loader.resolve_ref(uri)[0]
-
-    # generate pack output dict
-    packed = json.loads(print_pack(loadingContext.loader, processobj, uri, loadingContext.metadata))
-
-    assert packed["cwlVersion"] == 'v1.0'
-
-def test_pack_idempotence_tool():
-    """Ensure that pack produces exactly the same document for an already packed CommandLineTool."""
-    _pack_idempotently("tests/wf/hello_single_tool.cwl")
-
-def test_pack_idempotence_workflow():
-    """Ensure that pack produces exactly the same document for an already packed workflow."""
-    _pack_idempotently("tests/wf/count-lines1-wf.cwl")
-
-def _pack_idempotently(document):
-    loadingContext, workflowobj, uri = fetch_document(
-        get_data(document))
-    loadingContext.do_update = False
-    loadingContext, uri = resolve_and_validate_document(
-        loadingContext, workflowobj, uri)
-    processobj = loadingContext.loader.resolve_ref(uri)[0]
-
-    # generate pack output dict
-    packed = json.loads(print_pack(loadingContext.loader, processobj, uri, loadingContext.metadata))
-
-    loadingContext, workflowobj, uri2 = fetch_document(packed)
-    loadingContext.do_update = False
-    loadingContext, uri2 = resolve_and_validate_document(
-        loadingContext, workflowobj, uri)
-    processobj = loadingContext.loader.resolve_ref(uri2)[0]
-    double_packed = json.loads(print_pack(loadingContext.loader, processobj, uri2, loadingContext.metadata))
-    assert packed == double_packed
-
-cwl_to_run = [
-    ("tests/wf/count-lines1-wf.cwl",
-     "tests/wf/wc-job.json",
-     False
-     ),
-    ("tests/wf/formattest.cwl",
-     "tests/wf/formattest-job.json",
-     True
-     ),
-]
-
-@needs_docker
-@pytest.mark.parametrize('wf_path,job_path,namespaced', cwl_to_run)
-def test_packed_workflow_execution(wf_path, job_path, namespaced, tmpdir):
-    loadingContext = LoadingContext()
-    loadingContext.resolver = tool_resolver
-    loadingContext, workflowobj, uri = fetch_document(
-        get_data(wf_path), loadingContext)
-    loadingContext.do_update = False
-    loadingContext, uri = resolve_and_validate_document(
-        loadingContext, workflowobj, uri)
-    processobj = loadingContext.loader.resolve_ref(uri)[0]
-    packed = json.loads(print_pack(loadingContext.loader, processobj, uri, loadingContext.metadata))
-
-    assert not namespaced or "$namespaces" in packed
-
-    wf_packed_handle, wf_packed_path = tempfile.mkstemp()
-    with open(wf_packed_path, 'w') as temp_file:
-        json.dump(packed, temp_file)
-
-    normal_output = StringIO()
-    packed_output = StringIO()
-
-    normal_params = ['--outdir', str(tmpdir), get_data(wf_path), get_data(job_path)]
-    packed_params = ['--outdir', str(tmpdir), '--debug', wf_packed_path, get_data(job_path)]
-
-    assert main(normal_params, stdout=normal_output) == 0
-    assert main(packed_params, stdout=packed_output) == 0
-
-    assert json.loads(packed_output.getvalue()) == json.loads(normal_output.getvalue())
-
-    os.close(wf_packed_handle)
-    os.remove(wf_packed_path)