|
| 1 | +"""Test the LiterateWorkflow.""" |
| 2 | +from nipype.pipeline.engine import Node |
| 3 | +from nipype.interfaces import afni, utility as niu |
| 4 | +from ..workflows import LiterateWorkflow as Workflow |
| 5 | + |
| 6 | + |
| 7 | +def _reorient_wf(name='ReorientWorkflow'): |
| 8 | + """A workflow to reorient images to 'RPI' orientation.""" |
| 9 | + workflow = Workflow(name=name) |
| 10 | + workflow.__desc__ = "Inner workflow. " |
| 11 | + inputnode = Node(niu.IdentityInterface(fields=['in_file']), |
| 12 | + name='inputnode') |
| 13 | + outputnode = Node(niu.IdentityInterface( |
| 14 | + fields=['out_file']), name='outputnode') |
| 15 | + deoblique = Node(afni.Refit(deoblique=True), name='deoblique') |
| 16 | + reorient = Node(afni.Resample( |
| 17 | + orientation='RPI', outputtype='NIFTI_GZ'), name='reorient') |
| 18 | + workflow.connect([ |
| 19 | + (inputnode, deoblique, [('in_file', 'in_file')]), |
| 20 | + (deoblique, reorient, [('out_file', 'in_file')]), |
| 21 | + (reorient, outputnode, [('out_file', 'out_file')]) |
| 22 | + ]) |
| 23 | + return workflow |
| 24 | + |
| 25 | + |
| 26 | +def test_boilerplate(): |
| 27 | + """Check the boilerplate is generated.""" |
| 28 | + |
| 29 | + workflow = Workflow(name='test') |
| 30 | + workflow.__desc__ = "Outer workflow. " |
| 31 | + workflow.__postdesc__ = "Outer workflow (postdesc)." |
| 32 | + |
| 33 | + inputnode = Node(niu.IdentityInterface(fields=['in_file']), |
| 34 | + name='inputnode') |
| 35 | + inner = _reorient_wf() |
| 36 | + |
| 37 | + workflow.connect([ |
| 38 | + (inputnode, inner, [('in_file', 'inputnode.in_file')]), |
| 39 | + ]) |
| 40 | + |
| 41 | + assert workflow.visit_desc() == "Outer workflow. Inner workflow. Outer workflow (postdesc)." |
0 commit comments