diff env/lib/python3.9/site-packages/cwltool/tests/test_singularity.py @ 0:4f3585e2f14b draft default tip

"planemo upload commit 60cee0fc7c0cda8592644e1aad72851dec82c959"
author shellac
date Mon, 22 Mar 2021 18:12:50 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/env/lib/python3.9/site-packages/cwltool/tests/test_singularity.py	Mon Mar 22 18:12:50 2021 +0000
@@ -0,0 +1,127 @@
+import distutils.spawn
+import os
+import sys
+from pathlib import Path
+
+from cwltool.main import main
+
+from .util import (
+    get_data,
+    get_main_output,
+    needs_singularity,
+    needs_singularity_2_6,
+    working_directory,
+)
+
+sys.argv = [""]
+
+
+@needs_singularity_2_6
+def test_singularity_pullfolder(tmp_path: Path) -> None:
+    workdir = tmp_path / "working_dir_new"
+    workdir.mkdir()
+    os.chdir(workdir)
+    pullfolder = tmp_path / "pullfolder"
+    pullfolder.mkdir()
+    env = os.environ.copy()
+    env["SINGULARITY_PULLFOLDER"] = str(pullfolder)
+    result_code, stdout, stderr = get_main_output(
+        [
+            "--singularity",
+            get_data("tests/sing_pullfolder_test.cwl"),
+            "--message",
+            "hello",
+        ],
+        env=env,
+    )
+    print(stdout)
+    print(stderr)
+    assert result_code == 0
+    image = pullfolder / "debian.img"
+    assert image.exists()
+
+
+@needs_singularity
+def test_singularity_workflow(tmp_path: Path) -> None:
+    with working_directory(tmp_path):
+        error_code, _, stderr = get_main_output(
+            [
+                "--singularity",
+                "--default-container",
+                "debian",
+                "--debug",
+                get_data("tests/wf/hello-workflow.cwl"),
+                "--usermessage",
+                "hello",
+            ]
+        )
+    assert "completed success" in stderr, stderr
+    assert error_code == 0
+
+
+def test_singularity_iwdr() -> None:
+    result_code = main(
+        [
+            "--singularity",
+            "--default-container",
+            "debian",
+            get_data("tests/wf/iwdr-entry.cwl"),
+            "--message",
+            "hello",
+        ]
+    )
+    singularity_installed = bool(distutils.spawn.find_executable("singularity"))
+    if singularity_installed:
+        assert result_code == 0
+    else:
+        assert result_code != 0
+
+
+@needs_singularity
+def test_singularity_incorrect_image_pull() -> None:
+    result_code, _, stderr = get_main_output(
+        [
+            "--singularity",
+            "--default-container",
+            "non-existant-weird-image",
+            get_data("tests/wf/hello-workflow.cwl"),
+            "--usermessage",
+            "hello",
+        ]
+    )
+    assert result_code != 0
+
+
+@needs_singularity
+def test_singularity_local(tmp_path: Path) -> None:
+    workdir = tmp_path / "working_dir"
+    workdir.mkdir()
+    os.chdir(workdir)
+    result_code, stdout, stderr = get_main_output(
+        [
+            "--singularity",
+            get_data("tests/sing_pullfolder_test.cwl"),
+            "--message",
+            "hello",
+        ]
+    )
+    assert result_code == 0
+
+
+@needs_singularity_2_6
+def test_singularity_docker_image_id_in_tool(tmp_path: Path) -> None:
+    workdir = tmp_path / "working_dir"
+    workdir.mkdir()
+    os.chdir(workdir)
+    result_code, stdout, stderr = get_main_output(
+        [
+            "--singularity",
+            get_data("tests/sing_pullfolder_test.cwl"),
+            "--message",
+            "hello",
+        ]
+    )
+    result_code1, stdout, stderr = get_main_output(
+        ["--singularity", get_data("tests/debian_image_id.cwl"), "--message", "hello"]
+    )
+    assert result_code1 == 0