From eeb2580ca43eeb40bb2143cc13c4bb090015f224 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauldmccarthy@gmail.com>
Date: Fri, 31 Dec 2021 17:13:20 +0000
Subject: [PATCH] TEST: Test createFSLWrapper rename capability

---
 tests/test_create_remove_wrapper.py | 40 +++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/tests/test_create_remove_wrapper.py b/tests/test_create_remove_wrapper.py
index b2abcce..624fd5e 100755
--- a/tests/test_create_remove_wrapper.py
+++ b/tests/test_create_remove_wrapper.py
@@ -305,6 +305,46 @@ def test_create_wrappers_no_handle_gui_wrappers():
                 assert not op.exists(wrapper)
 
 
+def test_create_wrappers_rename():
+    """Tests the renaming functionality in createFSLWrapper.  If
+    $FSLDIR/bin/script exists, a wrapper with a different name
+    (e.g. $FSLDIR/share/fsl/bin/renamed_script) can be created by passing
+    "script=renamed_script".
+    """
+
+    # Keys are passed to createFSLWrapper, values
+    # are wrappers that should be created
+    scripts = {
+        'script1=renamed_script1'         : 'renamed_script1',
+        'script2=renamed_script2'         : 'renamed_script2',
+        'script3_gui=renamed_script3_gui' : 'renamed_script3_gui',
+        'script4_gui=renamed_script4'     : 'renamed_script4'
+    }
+
+    with temp_fsldir() as (fsldir, wrapperdir):
+        for script in scripts.keys():
+            target = script.split('=')[0]
+            with open(target, 'wt') as f:
+                touch(op.join(fsldir, 'bin', target))
+
+        for wrappers in it.permutations(scripts.keys()):
+            args  = ' '.join(wrappers)
+            run(f'{CREATE_WRAPPER} {args}')
+
+            for arg in wrappers:
+                target  = arg.split('=')[0]
+                wrapper = op.join(wrapperdir, scripts[arg])
+
+                assert op.exists(wrapper)
+                assert get_called_command(wrapper) == target
+
+            run(f'{REMOVE_WRAPPER} {args}')
+            for arg in wrappers:
+                target  = scripts[arg]
+                wrapper = op.join(wrapperdir, target)
+                assert not op.exists(wrapper)
+
+
 if __name__ == '__main__':
     # base dir can be speecified on command line
     if len(sys.argv) > 1:
-- 
GitLab