Skip to content

Commit 1c655f8

Browse files
author
Shoshana Berleant
committed
mock only what isn't being tested
1 parent f8cea61 commit 1c655f8

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

nipype/workflows/rsfmri/fsl/resting.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ def create_resting_preproc(name='restpreproc'):
151151
'num_components'],
152152
output_names=['noise_components'],
153153
function=extract_noise_components),
154-
name='compcorr')
154+
name='compcor')
155155
remove_noise = pe.Node(fsl.FilterRegressor(filter_all=True),
156156
name='remove_noise')
157157
bandpass_filter = pe.Node(fsl.TemporalFilter(),

nipype/workflows/rsfmri/fsl/tests/test_resting.py

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33

44
from .....testing import (assert_equal, assert_true, assert_almost_equal,
55
skipif, utils)
6-
from .....interfaces import fsl
6+
from .....interfaces import fsl, IdentityInterface
7+
from .....pipeline.engine import Node
78

89
from ..resting import create_resting_preproc
910

@@ -15,8 +16,24 @@
1516
import os
1617

1718
def mock_node_factory(*args, **kwargs):
19+
''' return mocks for all the nodes except compcor and compcor's neighbors'''
1820
mock = MagicMock()
19-
mock.name = kwargs['name'] if 'name' in kwargs.keys() else ''
21+
if 'name' in kwargs.keys():
22+
name = kwargs['name']
23+
if name == 'compcor':
24+
return Node(*args, **kwargs)
25+
if name in ['threshold', 'inputspec']:
26+
# nodes that provide inputs for compcor
27+
# just give all of them all of the fields
28+
return Node(IdentityInterface(fields=['out_file', 'lowpass_sigma',
29+
'num_noise_components',
30+
'func', 'highpass_sigma']),
31+
name='fake'+name)
32+
if name in ('remove_noise'):
33+
# node that takes output from compcor
34+
return Node(IdentityInterface(fields=['design_file', 'out_file']),
35+
name=name)
36+
mock.name = kwargs['name']
2037
if 'interface' in kwargs.keys():
2138
mock = mock.create_autospec(kwargs['interface'], instance=True)
2239
mock.iterables = None
@@ -40,11 +57,11 @@ def setUp(self):
4057
@skipif(True)
4158
@mock.patch('nipype.pipeline.engine.Workflow._write_report_info')
4259
@mock.patch('nipype.workflows.rsfmri.fsl.resting.create_realign_flow',
43-
side_effect=mock_node_factory)
60+
return_value=Node(name='realigner', interface=IdentityInterface(
61+
fields=['outputspec.realigned_file'])))
4462
@mock.patch('nipype.pipeline.engine.Node', side_effect=mock_node_factory)
4563
def test_create_resting_preproc(self, mock_Node, mock_realign_wf, nothing):
4664
# setup
47-
print(np.random.randint(0, 10, (2, 2, 2, 5)))
4865
# run
4966
wf = create_resting_preproc()
5067
wf.run()

0 commit comments

Comments
 (0)