Skip to content

Commit 9808dae

Browse files
author
Ben Cipollini
committed
TST: fix FSL output extension errors, test all extensions, share code.
1 parent c9f6458 commit 9808dae

File tree

2 files changed

+64
-38
lines changed

2 files changed

+64
-38
lines changed

nipype/interfaces/fsl/tests/test_maths.py

Lines changed: 59 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@
1616
from nipype.interfaces.fsl import no_fsl, Info
1717

1818

19+
def set_output_type(fsl_output_type=None):
20+
prev_output_type = os.environ.get('FSLOUTPUTTYPE', None)
21+
if fsl_output_type is not None:
22+
os.environ['FSLOUTPUTTYPE'] = fsl_output_type
23+
return prev_output_type
24+
1925
def create_files_in_directory():
2026
testdir = os.path.realpath(mkdtemp())
2127
origdir = os.getcwd()
@@ -40,7 +46,8 @@ def clean_directory(testdir, origdir):
4046

4147

4248
@skipif(no_fsl)
43-
def test_maths_base():
49+
def test_maths_base(fsl_output_type=None):
50+
prev_type = set_output_type(fsl_output_type)
4451
files, testdir, origdir, out_ext = create_files_in_directory()
4552

4653
# Get some fslmaths
@@ -78,9 +85,11 @@ def test_maths_base():
7885

7986
# Clean up our mess
8087
clean_directory(testdir, origdir)
88+
set_output_type(prev_type)
8189

8290
@skipif(no_fsl)
83-
def test_changedt():
91+
def test_changedt(fsl_output_type=None):
92+
prev_type = set_output_type(fsl_output_type)
8493
files, testdir, origdir, out_ext = create_files_in_directory()
8594

8695
# Get some fslmaths
@@ -108,9 +117,11 @@ def test_changedt():
108117

109118
# Clean up our mess
110119
clean_directory(testdir, origdir)
120+
set_output_type(prev_type)
111121

112122
@skipif(no_fsl)
113-
def test_threshold():
123+
def test_threshold(fsl_output_type=None):
124+
prev_type = set_output_type(fsl_output_type)
114125
files, testdir, origdir, out_ext = create_files_in_directory()
115126

116127
# Get the command
@@ -142,10 +153,12 @@ def test_threshold():
142153

143154
# Clean up our mess
144155
clean_directory(testdir, origdir)
156+
set_output_type(prev_type)
145157

146158

147159
@skipif(no_fsl)
148-
def test_meanimage():
160+
def test_meanimage(fsl_output_type=None):
161+
prev_type = set_output_type(fsl_output_type)
149162
files, testdir, origdir, out_ext = create_files_in_directory()
150163

151164
# Get the command
@@ -169,9 +182,11 @@ def test_meanimage():
169182

170183
# Clean up our mess
171184
clean_directory(testdir, origdir)
185+
set_output_type(prev_type)
172186

173187
@skipif(no_fsl)
174-
def test_maximage():
188+
def test_maximage(fsl_output_type=None):
189+
prev_type = set_output_type(fsl_output_type)
175190
files, testdir, origdir, out_ext = create_files_in_directory()
176191

177192
# Get the command
@@ -195,9 +210,11 @@ def test_maximage():
195210

196211
# Clean up our mess
197212
clean_directory(testdir, origdir)
213+
set_output_type(prev_type)
198214

199215
@skipif(no_fsl)
200-
def test_smooth():
216+
def test_smooth(fsl_output_type=None):
217+
prev_type = set_output_type(fsl_output_type)
201218
files, testdir, origdir, out_ext = create_files_in_directory()
202219

203220
# Get the command
@@ -224,9 +241,11 @@ def test_smooth():
224241

225242
# Clean up our mess
226243
clean_directory(testdir, origdir)
244+
set_output_type(prev_type)
227245

228246
@skipif(no_fsl)
229-
def test_mask():
247+
def test_mask(fsl_output_type=None):
248+
prev_type = set_output_type(fsl_output_type)
230249
files, testdir, origdir, out_ext = create_files_in_directory()
231250

232251
# Get the command
@@ -248,10 +267,12 @@ def test_mask():
248267

249268
# Clean up our mess
250269
clean_directory(testdir, origdir)
270+
set_output_type(prev_type)
251271

252272

253273
@skipif(no_fsl)
254-
def test_dilation():
274+
def test_dilation(fsl_output_type=None):
275+
prev_type = set_output_type(fsl_output_type)
255276
files, testdir, origdir, out_ext = create_files_in_directory()
256277

257278
# Get the command
@@ -290,9 +311,11 @@ def test_dilation():
290311

291312
# Clean up our mess
292313
clean_directory(testdir, origdir)
314+
set_output_type(prev_type)
293315

294316
@skipif(no_fsl)
295-
def test_erosion():
317+
def test_erosion(fsl_output_type=None):
318+
prev_type = set_output_type(fsl_output_type)
296319
files, testdir, origdir, out_ext = create_files_in_directory()
297320

298321
# Get the command
@@ -314,9 +337,11 @@ def test_erosion():
314337

315338
# Clean up our mess
316339
clean_directory(testdir, origdir)
340+
set_output_type(prev_type)
317341

318342
@skipif(no_fsl)
319-
def test_spatial_filter():
343+
def test_spatial_filter(fsl_output_type=None):
344+
prev_type = set_output_type(fsl_output_type)
320345
files, testdir, origdir, out_ext = create_files_in_directory()
321346

322347
# Get the command
@@ -339,10 +364,12 @@ def test_spatial_filter():
339364

340365
# Clean up our mess
341366
clean_directory(testdir, origdir)
367+
set_output_type(prev_type)
342368

343369

344370
@skipif(no_fsl)
345-
def test_unarymaths():
371+
def test_unarymaths(fsl_output_type=None):
372+
prev_type = set_output_type(fsl_output_type)
346373
files, testdir, origdir, out_ext = create_files_in_directory()
347374

348375
# Get the command
@@ -367,10 +394,12 @@ def test_unarymaths():
367394

368395
# Clean up our mess
369396
clean_directory(testdir, origdir)
397+
set_output_type(prev_type)
370398

371399

372400
@skipif(no_fsl)
373-
def test_binarymaths():
401+
def test_binarymaths(fsl_output_type=None):
402+
prev_type = set_output_type(fsl_output_type)
374403
files, testdir, origdir, out_ext = create_files_in_directory()
375404

376405
# Get the command
@@ -403,10 +432,12 @@ def test_binarymaths():
403432

404433
# Clean up our mess
405434
clean_directory(testdir, origdir)
435+
set_output_type(prev_type)
406436

407437

408438
@skipif(no_fsl)
409-
def test_multimaths():
439+
def test_multimaths(fsl_output_type=None):
440+
prev_type = set_output_type(fsl_output_type)
410441
files, testdir, origdir, out_ext = create_files_in_directory()
411442

412443
# Get the command
@@ -434,10 +465,12 @@ def test_multimaths():
434465

435466
# Clean up our mess
436467
clean_directory(testdir, origdir)
468+
set_output_type(prev_type)
437469

438470

439471
@skipif(no_fsl)
440-
def test_tempfilt():
472+
def test_tempfilt(fsl_output_type=None):
473+
prev_type = set_output_type(fsl_output_type)
441474
files, testdir, origdir, out_ext = create_files_in_directory()
442475

443476
# Get the command
@@ -463,5 +496,16 @@ def test_tempfilt():
463496

464497
# Clean up our mess
465498
clean_directory(testdir, origdir)
499+
set_output_type(prev_type)
466500

467-
501+
@skipif(no_fsl)
502+
def test_all_again():
503+
# Rerun tests with all file types
504+
all_func = [test_binarymaths, test_changedt, test_dilation, test_erosion,
505+
test_mask, test_maximage, test_meanimage, test_multimaths,
506+
test_smooth, test_tempfilt, test_threshold, test_unarymaths]
507+
508+
for output_type in Info.ftypes:
509+
for func in all_func:
510+
for test in func(output_type):
511+
yield test

nipype/interfaces/fsl/tests/test_utils.py

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,28 +13,8 @@
1313
import nipype.interfaces.fsl.utils as fsl
1414
from nipype.interfaces.fsl import no_fsl, Info
1515

16-
17-
def create_files_in_directory():
18-
outdir = mkdtemp()
19-
cwd = os.getcwd()
20-
os.chdir(outdir)
21-
filelist = ['a.nii', 'b.nii']
22-
for f in filelist:
23-
hdr = nb.Nifti1Header()
24-
shape = (3, 3, 3, 4)
25-
hdr.set_data_shape(shape)
26-
img = np.random.random(shape)
27-
nb.save(nb.Nifti1Image(img, np.eye(4), hdr),
28-
os.path.join(outdir, f))
29-
30-
out_ext = Info.output_type_to_ext(Info.output_type())
31-
return filelist, outdir, cwd, out_ext
32-
33-
34-
def clean_directory(outdir, old_wd):
35-
if os.path.exists(outdir):
36-
rmtree(outdir)
37-
os.chdir(old_wd)
16+
from .test_maths import (set_output_type, create_files_in_directory,
17+
clean_directory)
3818

3919

4020
@skipif(no_fsl)
@@ -306,7 +286,8 @@ def test_convertxfm():
306286

307287

308288
@skipif(no_fsl)
309-
def test_swapdims():
289+
def test_swapdims(fsl_output_type=None):
290+
prev_type = set_output_type(fsl_output_type)
310291
files, testdir, origdir, out_ext = create_files_in_directory()
311292
swap = fsl.SwapDimensions()
312293

@@ -330,3 +311,4 @@ def test_swapdims():
330311

331312
# Clean up
332313
clean_directory(testdir, origdir)
314+
set_output_type(prev_type)

0 commit comments

Comments
 (0)