From 4cc240dac5b6b07b475dd2997d22fda033d71c9c Mon Sep 17 00:00:00 2001 From: Paul McCarthy <pauldmccarthy@gmail.com> Date: Tue, 29 Aug 2023 18:33:14 +0100 Subject: [PATCH] TEST: Don't set FSLOUTPUTTYPE in env --- fsl/tests/test_scripts/test_immv_imcp.py | 136 +++++++++-------------- 1 file changed, 53 insertions(+), 83 deletions(-) diff --git a/fsl/tests/test_scripts/test_immv_imcp.py b/fsl/tests/test_scripts/test_immv_imcp.py index 582a23d7c..276fa5759 100644 --- a/fsl/tests/test_scripts/test_immv_imcp.py +++ b/fsl/tests/test_scripts/test_immv_imcp.py @@ -6,9 +6,13 @@ import os.path as op import itertools as it import subprocess as sp import os +import glob +import gzip import shutil import tempfile +from unittest import mock + import pytest import numpy as np @@ -17,20 +21,12 @@ import nibabel as nib from fsl.utils.tempdir import tempdir import fsl.scripts.imcp as imcp_script import fsl.scripts.immv as immv_script +import fsl.data.image as fslimage from .. import cleardir from ..test_immv_imcp import makeImage, checkImageHash, checkFilesToExpect -real_print = print - -def print(*args, **kwargs): - pass - - - - - def test_imcp_script_shouldPass(move=False): @@ -234,80 +230,67 @@ def test_imcp_script_shouldPass(move=False): for outputType, reldir in it.product(outputTypes, reldirs): - os.environ['FSLOUTPUTTYPE'] = outputType - - for files_to_create, imcp_args, files_to_expect in tests: - - imageHashes = [] - - print() - print('files_to_create: ', files_to_create) - print('imcp_args: ', imcp_args) - print('files_to_expect: ', files_to_expect) - - for i, fname in enumerate(files_to_create.split()): - imageHashes.append(makeImage(op.join(indir, fname))) + with mock.patch.dict(os.environ, {'FSLOUTPUTTYPE' : outputType}): - imcp_args = imcp_args.split() + for files_to_create, imcp_args, files_to_expect in tests: - tindir = indir - toutdir = outdir + imageHashes = [] - if reldir == 'neutral': reldir = startdir - elif reldir == 'indir': reldir = tindir - elif reldir == 'outdir': reldir = toutdir - elif reldir == 'samedir': - reldir = tindir - toutdir = tindir + for i, fname in enumerate(files_to_create.split()): + imageHashes.append(makeImage(op.join(indir, fname))) - if not move: + imcp_args = imcp_args.split() - infiles = os.listdir(tindir) + tindir = indir + toutdir = outdir - files_to_expect = files_to_expect + ' ' + \ - ' '.join(infiles) + if reldir == 'neutral': reldir = startdir + elif reldir == 'indir': reldir = tindir + elif reldir == 'outdir': reldir = toutdir + elif reldir == 'samedir': + reldir = tindir + toutdir = tindir - for inf in infiles: - img = nib.load(op.join(tindir, inf), - mmap=False) - imghash = hash(np.asanyarray(img.dataobj).tobytes()) - img = None - imageHashes.append(imghash) + if not move: - print('adj files_to_expect: ', files_to_expect) + infiles = os.listdir(tindir) - os.chdir(reldir) + files_to_expect = files_to_expect + ' ' + \ + ' '.join(infiles) - imcp_args[:-1] = [op.join(tindir, a) for a in imcp_args[:-1]] - imcp_args[ -1] = op.join(toutdir, imcp_args[-1]) + for inf in infiles: + img = nib.load(op.join(tindir, inf), + mmap=False) + imghash = hash(np.asanyarray(img.dataobj).tobytes()) + img = None + imageHashes.append(imghash) - for i, a in enumerate(imcp_args): - if op.splitdrive(a)[0] == op.splitdrive(reldir)[0]: - imcp_args[i] = op.relpath(a, reldir) + os.chdir(reldir) - print('indir before: ', os.listdir(tindir)) - print('outdir before: ', os.listdir(toutdir)) + imcp_args[:-1] = [op.join(tindir, a) for a in imcp_args[:-1]] + imcp_args[ -1] = op.join(toutdir, imcp_args[-1]) - if move: result = immv_script.main(imcp_args) - else: result = imcp_script.main(imcp_args) + for i, a in enumerate(imcp_args): + if op.splitdrive(a)[0] == op.splitdrive(reldir)[0]: + imcp_args[i] = op.relpath(a, reldir) - print('indir after: ', os.listdir(tindir)) - print('outdir after: ', os.listdir(toutdir)) + if move: result = immv_script.main(imcp_args) + else: result = imcp_script.main(imcp_args) - assert result == 0 + assert result == 0 - checkFilesToExpect( - files_to_expect, toutdir, outputType, imageHashes) + checkFilesToExpect( + files_to_expect, toutdir, outputType, imageHashes) - # too hard if indir == outdir - if move and tindir != toutdir: - infiles = os.listdir(tindir) - infiles = [f for f in infiles if op.isfile(f)] - infiles = [f for f in infiles if op.isfile(f)] - assert len(infiles) == 0 + # too hard if indir == outdir + if move and tindir != toutdir: + infiles = os.listdir(tindir) + infiles = [f for f in infiles if op.isfile(f)] + infiles = [f for f in infiles if op.isfile(f)] + assert len(infiles) == 0 - cleardir(indir) - cleardir(outdir) + cleardir(indir) + cleardir(outdir) finally: os.chdir(startdir) @@ -397,18 +380,9 @@ def test_imcp_script_shouldFail(move=False): cmd = cmd.replace('indir', indir).replace('outdir', outdir) sp.call(cmd.split()) - print('calling {} {}'.format('immv' if move else 'imcp', - ' '.join(imcp_args))) - - print('indir before: {}'.format(os.listdir(indir))) - print('out dir before: {}'.format(os.listdir(outdir))) - if move: result = immv_script.main(imcp_args) else: result = imcp_script.main(imcp_args) - print('indir after: {}'.format(os.listdir(indir))) - print('out dir after: {}'.format(os.listdir(outdir))) - assert result != 0 sp.call('chmod u+rwx {}'.format(indir) .split()) @@ -430,7 +404,6 @@ def test_imcp_script_shouldFail(move=False): else: assert imcp_script.main(['wa']) != 0 - def test_immv_script_shouldPass(): test_imcp_script_shouldPass(move=True) @@ -440,27 +413,24 @@ def test_immv_script_shouldFail(): test_imcp_script_shouldFail(move=True) - def test_imcp_badExt(): with tempdir(): - with open('file.nii.gz', 'wt') as f: - f.write('1') - + ihash = makeImage('file.nii.gz') result = imcp_script.main(['file.nii', 'dest']) assert result == 0 assert op.exists('dest.nii.gz') - + checkImageHash('dest.nii.gz', ihash) def test_immv_badExt(): with tempdir(): - with open('file.nii.gz', 'wt') as f: - f.write('1') - + ihash = makeImage('file.nii.gz') result = immv_script.main(['file.nii', 'dest']) assert result == 0 assert op.exists('dest.nii.gz') + checkImageHash('dest.nii.gz', ihash) + -- GitLab