Skip to content

Commit 04e246f

Browse files
committed
Merge remote-tracking branch 'upstream/master' into enh/et
* upstream/master: tst: use pytest fixture
2 parents fcbf57b + 6e80cea commit 04e246f

File tree

1 file changed

+23
-20
lines changed

1 file changed

+23
-20
lines changed

nipype/interfaces/tests/test_extra_dcm2nii.py

+23-20
Original file line numberDiff line numberDiff line change
@@ -14,42 +14,45 @@
1414
DICOM_DIR = 'http://datasets-tests.datalad.org/dicoms/dcm2niix-tests'
1515

1616

17-
def fetch_data(datadir, dicoms):
18-
"""Fetches some test DICOMs using datalad"""
19-
api.install(path=datadir, source=DICOM_DIR)
20-
data = os.path.join(datadir, dicoms)
21-
api.get(path=data)
22-
return data
17+
@pytest.fixture
18+
def fetch_data():
19+
def _fetch_data(datadir, dicoms):
20+
try:
21+
"""Fetches some test DICOMs using datalad"""
22+
api.install(path=datadir, source=DICOM_DIR)
23+
data = os.path.join(datadir, dicoms)
24+
api.get(path=data)
25+
except IncompleteResultsError as exc:
26+
pytest.skip("Failed to fetch test data: %s" % str(exc))
27+
return data
28+
return _fetch_data
2329

2430
@pytest.mark.skipif(no_datalad, reason="Datalad required")
2531
@pytest.mark.skipif(no_dcm2niix, reason="Dcm2niix required")
26-
def test_dcm2niix_dwi(tmpdir):
32+
def test_dcm2niix_dti(fetch_data, tmpdir):
2733
tmpdir.chdir()
2834
datadir = tmpdir.mkdir('data').strpath
29-
try:
30-
dicoms = fetch_data(datadir, 'Siemens_Sag_DTI_20160825_145811')
31-
except IncompleteResultsError as exc:
32-
pytest.skip("Failed to fetch test data: %s" % str(exc))
35+
dicoms = fetch_data(datadir, 'Siemens_Sag_DTI_20160825_145811')
3336

34-
def assert_dwi(eg):
37+
def assert_dti(res):
3538
"Some assertions we will make"
36-
assert eg.outputs.converted_files
37-
assert eg.outputs.bvals
38-
assert eg.outputs.bvecs
39-
outputs = [y for x,y in eg.outputs.get().items()]
40-
if eg.inputs.get('bids_format'):
39+
assert res.outputs.converted_files
40+
assert res.outputs.bvals
41+
assert res.outputs.bvecs
42+
outputs = [y for x,y in res.outputs.get().items()]
43+
if res.inputs.get('bids_format'):
4144
# ensure all outputs are of equal lengths
4245
assert len(set(map(len, outputs))) == 1
4346
else:
44-
assert not eg.outputs.bids
47+
assert not res.outputs.bids
4548

4649
dcm = Dcm2niix()
4750
dcm.inputs.source_dir = dicoms
4851
dcm.inputs.out_filename = '%u%z'
49-
assert_dwi(dcm.run())
52+
assert_dti(dcm.run())
5053

5154
# now run specifying output directory and removing BIDS option
5255
outdir = tmpdir.mkdir('conversion').strpath
5356
dcm.inputs.output_dir = outdir
5457
dcm.inputs.bids_format = False
55-
assert_dwi(dcm.run())
58+
assert_dti(dcm.run())

0 commit comments

Comments
 (0)