From 3738b75f9c43c808976867c0c339ba9b125e964c Mon Sep 17 00:00:00 2001 From: Paul McCarthy <pauldmccarthy@gmail.com> Date: Sun, 27 May 2018 18:24:23 +0100 Subject: [PATCH] TEST: Unit test for fsldir/fsldevdir/fsl_prefix --- tests/test_run.py | 48 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/tests/test_run.py b/tests/test_run.py index c12e2e714..5a79d2d52 100644 --- a/tests/test_run.py +++ b/tests/test_run.py @@ -8,6 +8,7 @@ import os.path as op import os +import shutil import textwrap # python 3 @@ -161,11 +162,13 @@ def test_runfsl(): test_script = textwrap.dedent(""" #!/bin/bash - echo $@ + echo {} exit 0 """).strip() - old_fsldir = fslplatform.fsldir + old_fsldir = fslplatform.fsldir + old_fsldevdir = fslplatform.fsldevdir + try: with tempdir.tempdir(): @@ -173,24 +176,51 @@ def test_runfsl(): make_random_image('image.nii.gz') # no FSLDIR - should error - fslplatform.fsldir = None + fslplatform.fsldir = None + fslplatform.fsldevdir = None with pytest.raises(run.FSLNotPresent): - run.runfsl('fslhd image') + run.runfsl('fslhd') # FSLDIR/bin exists - should be good fsldir = op.abspath('./fsl') fslhd = op.join(fsldir, 'bin', 'fslhd') os.makedirs(op.join(fsldir, 'bin')) with open(fslhd, 'wt') as f: - f.write(test_script) + f.write(test_script.format('fsldir')) os.chmod(fslhd, 0o777) fslplatform.fsldir = fsldir - path = op.pathsep.join((fsldir, os.environ['PATH'])) - with mock.patch.dict(os.environ, {'PATH' : path}): - assert run.runfsl('fslhd image').strip() == 'image' + assert run.runfsl('fslhd').strip() == 'fsldir' + + # FSLDEVDIR should take precedence + fsldevdir = './fsldev' + fslhd = op.join(fsldevdir, 'bin', 'fslhd') + shutil.copytree(fsldir, fsldevdir) + with open(fslhd, 'wt') as f: + f.write(test_script.format('fsldevdir')) + + fslplatform.fsldevdir = fsldevdir + fslplatform.fsldir = None + assert run.runfsl('fslhd').strip() == 'fsldevdir' + + # FSL_PREFIX should override all + override = './override' + fslhd = op.join(override, 'fslhd') + os.makedirs(override) + with open(fslhd, 'wt') as f: + f.write(test_script.format('override')) + os.chmod(fslhd, 0o777) + + + fslplatform.fsldir = None + fslplatform.fsldevdir = None + run.FSL_PREFIX = override + assert run.runfsl('fslhd').strip() == 'override' + finally: - fslplatform.fsldir = old_fsldir + fslplatform.fsldir = old_fsldir + fslplatform.fsldevdir = old_fsldevdir + run.FSL_PREFIX = None def mock_submit(cmd, **kwargs): -- GitLab