Mercurial > repos > guerler > springsuite
diff planemo/lib/python3.7/site-packages/cwltool/tests/test_secrets.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_secrets.py Fri Jul 31 00:18:57 2020 -0400 @@ -0,0 +1,77 @@ +import shutil +import sys +import tempfile +import pytest +from cwltool.secrets import SecretStore +from cwltool.main import main +from .util import (get_data, needs_docker, needs_singularity, + windows_needs_docker) +from io import StringIO + + +@pytest.fixture +def secrets(): + sec_store = SecretStore() + job = {'foo': 'bar', + 'baz': 'quux'} + + sec_store.store(['foo'], job) + return sec_store, job + +def test_obscuring(secrets): + storage, obscured = secrets + assert obscured['foo'] != 'bar' + assert obscured['baz'] == 'quux' + assert storage.retrieve(obscured)['foo'] == 'bar' + +obscured_factories_expected = [ + ((lambda x: 'hello %s' % x), 'hello bar'), + ((lambda x: ['echo', 'hello %s' % x]), ['echo', 'hello bar']), + ((lambda x: {'foo': x}), {'foo': 'bar'}), +] + +@pytest.mark.parametrize('factory,expected', obscured_factories_expected) +def test_secrets(factory, expected, secrets): + storage, obscured = secrets + pattern = factory(obscured['foo']) + assert pattern != expected + + assert storage.has_secret(pattern) + assert storage.retrieve(pattern) == expected + + assert obscured['foo'] != 'bar' + assert obscured['baz'] == 'quux' + +@needs_docker +def test_secret_workflow_log(): + stream = StringIO() + tmpdir = tempfile.mkdtemp() + main(["--debug", "--enable-ext", "--outdir", tmpdir, + get_data("tests/wf/secret_wf.cwl"), "--pw", "Hoopla!"], + stderr=stream) + + shutil.rmtree(tmpdir) + assert "Hoopla!" not in stream.getvalue() + +@needs_singularity +def test_secret_workflow_log_singularity(): + stream = StringIO() + tmpdir = tempfile.mkdtemp() + main(["--debug", "--outdir", tmpdir, "--singularity", + get_data("tests/wf/secret_wf.cwl"), "--pw", "Hoopla!"], + stderr=stream) + + shutil.rmtree(tmpdir) + assert "Hoopla!" not in stream.getvalue() + +@needs_docker +def test_secret_workflow_log_override(): + stream = StringIO() + tmpdir = tempfile.mkdtemp() + main(["--debug", "--outdir", tmpdir, "--enable-ext", "--overrides", + get_data("tests/wf/override-no-secrets.yml"), + get_data("tests/wf/secret_wf.cwl"), "--pw", "Hoopla!"], + stderr=stream) + shutil.rmtree(tmpdir) + + assert "Hoopla!" in stream.getvalue()