comparison env/lib/python3.7/site-packages/cwltool/tests/test_singularity.py @ 2:6af9afd405e9 draft

"planemo upload commit 0a63dd5f4d38a1f6944587f52a8cd79874177fc1"
author shellac
date Thu, 14 May 2020 14:56:58 -0400
parents 26e78fe6e8c4
children
comparison
equal deleted inserted replaced
1:75ca89e9b81c 2:6af9afd405e9
1 import sys
2 import os
3 import pytest
4
5 import distutils.spawn
6
7 import schema_salad.validate
8
9 from cwltool.main import main
10
11 from .util import (get_data, get_main_output, needs_singularity,
12 needs_singularity_2_6, working_directory)
13
14 sys.argv = ['']
15
16
17 @needs_singularity_2_6
18 def test_singularity_pullfolder(tmp_path):
19 workdir = tmp_path / "working_dir_new"
20 workdir.mkdir()
21 os.chdir(str(workdir))
22 pullfolder = tmp_path / "pullfolder"
23 pullfolder.mkdir()
24 env = os.environ.copy()
25 env["SINGULARITY_PULLFOLDER"] = str(pullfolder)
26 result_code, stdout, stderr = get_main_output(
27 ['--singularity', get_data("tests/sing_pullfolder_test.cwl"), "--message", "hello"], env=env)
28 print(stdout)
29 print(stderr)
30 assert result_code == 0
31 image = pullfolder/"debian.img"
32 assert image.exists()
33
34 @needs_singularity
35 def test_singularity_workflow(tmpdir):
36 with working_directory(str(tmpdir)):
37 error_code, _, stderr = get_main_output(
38 ['--singularity', '--default-container', 'debian', '--debug',
39 get_data("tests/wf/hello-workflow.cwl"), "--usermessage", "hello"])
40 assert "completed success" in stderr, stderr
41 assert error_code == 0
42
43 def test_singularity_iwdr():
44 result_code = main(
45 ['--singularity', '--default-container', 'debian',
46 get_data("tests/wf/iwdr-entry.cwl"), "--message", "hello"])
47 singularity_installed = bool(distutils.spawn.find_executable('singularity'))
48 if singularity_installed:
49 assert result_code == 0
50 else:
51 assert result_code != 0
52
53 @needs_singularity
54 def test_singularity_incorrect_image_pull():
55 result_code, _, stderr = get_main_output(
56 ['--singularity', '--default-container', 'non-existant-weird-image',
57 get_data("tests/wf/hello-workflow.cwl"), "--usermessage", "hello"])
58 assert result_code != 0
59
60 @needs_singularity
61 def test_singularity_local(tmp_path):
62 workdir = tmp_path / "working_dir"
63 workdir.mkdir()
64 os.chdir(str(workdir))
65 result_code, stdout, stderr = get_main_output(
66 ['--singularity', get_data("tests/sing_pullfolder_test.cwl"), "--message", "hello"])
67 assert result_code == 0
68
69 @needs_singularity_2_6
70 def test_singularity_docker_image_id_in_tool(tmp_path):
71 workdir = tmp_path / "working_dir"
72 workdir.mkdir()
73 os.chdir(str(workdir))
74 result_code, stdout, stderr = get_main_output(
75 ['--singularity', get_data("tests/sing_pullfolder_test.cwl"), "--message", "hello"])
76 result_code1, stdout, stderr = get_main_output(
77 ['--singularity', get_data("tests/debian_image_id.cwl"), "--message", "hello"])
78 assert result_code1 == 0