3
3
4
4
from .....testing import (assert_equal , assert_true , assert_almost_equal ,
5
5
skipif , utils )
6
- from .....interfaces import fsl
6
+ from .....interfaces import fsl , IdentityInterface
7
+ from .....pipeline .engine import Node
7
8
8
9
from ..resting import create_resting_preproc
9
10
15
16
import os
16
17
17
18
def mock_node_factory (* args , ** kwargs ):
19
+ ''' return mocks for all the nodes except compcor and compcor's neighbors'''
18
20
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' ]
20
37
if 'interface' in kwargs .keys ():
21
38
mock = mock .create_autospec (kwargs ['interface' ], instance = True )
22
39
mock .iterables = None
@@ -40,11 +57,11 @@ def setUp(self):
40
57
@skipif (True )
41
58
@mock .patch ('nipype.pipeline.engine.Workflow._write_report_info' )
42
59
@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' ])))
44
62
@mock .patch ('nipype.pipeline.engine.Node' , side_effect = mock_node_factory )
45
63
def test_create_resting_preproc (self , mock_Node , mock_realign_wf , nothing ):
46
64
# setup
47
- print (np .random .randint (0 , 10 , (2 , 2 , 2 , 5 )))
48
65
# run
49
66
wf = create_resting_preproc ()
50
67
wf .run ()
0 commit comments