Mercurial > repos > guerler > springsuite
diff planemo/lib/python3.7/site-packages/cwltool/tests/test_udocker.py @ 0:d30785e31577 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author | guerler |
---|---|
date | Fri, 31 Jul 2020 00:18:57 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/planemo/lib/python3.7/site-packages/cwltool/tests/test_udocker.py Fri Jul 31 00:18:57 2020 -0400 @@ -0,0 +1,78 @@ +import pytest +import sys +import os +import subprocess +from .util import get_data, get_main_output +import tempfile +import shutil +from psutil.tests import TRAVIS + +LINUX = sys.platform in ('linux', 'linux2') + + +#@pytest.mark.skipif(not LINUX, reason="LINUX only") +@pytest.mark.skip("Udocker install is broken, see https://github.com/indigo-dc/udocker/issues/221") +class TestUdocker: + udocker_path = None + + @classmethod + def setup_class(cls): + test_cwd = os.getcwd() + test_environ = os.environ.copy() + cls.docker_install_dir = tempfile.mkdtemp() + os.chdir(cls.docker_install_dir) + + url="https://download.ncg.ingrid.pt/webdav/udocker/udocker-1.1.3.tar.gz" + install_cmds = [ + ["curl", url, "-o", "./udocker-tarball.tgz"], + ["tar", "xzvf", "udocker-tarball.tgz", "udocker"], + ["bash", "-c", "UDOCKER_TARBALL={}/udocker-tarball.tgz ./udocker install".format(cls.docker_install_dir)]] + + os.environ['UDOCKER_DIR'] = os.path.join(cls.docker_install_dir, ".udocker") + os.environ['HOME'] = cls.docker_install_dir + + results = [] + for _ in range(3): + results = [subprocess.call(cmds) for cmds in install_cmds] + if sum(results) == 0: + break + subprocess.call(["rm", "./udocker"]) + + assert sum(results) == 0 + + cls.udocker_path = os.path.join(cls.docker_install_dir, 'udocker') + os.chdir(test_cwd) + os.environ = test_environ + print('Udocker install dir: ' + cls.docker_install_dir) + + @classmethod + def teardown_class(cls): + shutil.rmtree(cls.docker_install_dir) + + def test_udocker_usage_should_not_write_cid_file(self, tmpdir): + cwd = tmpdir.chdir() + + test_file = "tests/wf/wc-tool.cwl" + job_file = "tests/wf/wc-job.json" + error_code, stdout, stderr = get_main_output( + ["--debug", "--default-container", "debian", "--user-space-docker-cmd=" + self.udocker_path, + get_data(test_file), get_data(job_file)]) + cwd.chdir() + cidfiles_count = sum(1 for _ in tmpdir.visit(fil="*.cid")) + + tmpdir.remove(ignore_errors=True) + + assert "completed success" in stderr, stderr + assert cidfiles_count == 0 + + @pytest.mark.skipif(TRAVIS, reason='Not reliable on single threaded test on travis.') + def test_udocker_should_display_memory_usage(self, tmpdir): + cwd = tmpdir.chdir() + error_code, stdout, stderr = get_main_output( + ["--enable-ext", "--default-container=debian", "--user-space-docker-cmd=" + self.udocker_path, + get_data("tests/wf/timelimit.cwl"), "--sleep_time", "10"]) + cwd.chdir() + tmpdir.remove(ignore_errors=True) + + assert "completed success" in stderr, stderr + assert "Max memory" in stderr, stderr