@@ -172,6 +172,67 @@ def test_datasink_copydir():
172
172
shutil .rmtree (pth )
173
173
174
174
175
+ def test_datafinder_copydir ():
176
+ outdir = mkdtemp ()
177
+ open (os .path .join (outdir , "findme.txt" ), 'a' ).close ()
178
+ open (os .path .join (outdir , "dontfindme" ), 'a' ).close ()
179
+ open (os .path .join (outdir , "dontfindmealsotxt" ), 'a' ).close ()
180
+ open (os .path .join (outdir , "findmetoo.txt" ), 'a' ).close ()
181
+ open (os .path .join (outdir , "ignoreme.txt" ), 'a' ).close ()
182
+ open (os .path .join (outdir , "alsoignore.txt" ), 'a' ).close ()
183
+
184
+ from nipype .interfaces .io import DataFinder
185
+ df = DataFinder ()
186
+ df .inputs .root_paths = outdir
187
+ df .inputs .match_regex = '.+/(?P<basename>.+)\.txt'
188
+ df .inputs .ignore_regexes = ['ignore' ]
189
+ result = df .run ()
190
+ expected = ["findme.txt" , "findmetoo.txt" ]
191
+ for path , expected_fname in zip (result .outputs .out_paths , expected ):
192
+ _ , fname = os .path .split (path )
193
+ yield assert_equal , fname , expected_fname
194
+
195
+ yield assert_equal , result .outputs .basename , ["findme" , "findmetoo" ]
196
+
197
+ shutil .rmtree (outdir )
198
+
199
+
200
+ def test_datafinder_depth ():
201
+ outdir = mkdtemp ()
202
+ os .makedirs (os .path .join (outdir , '0' , '1' , '2' , '3' ))
203
+
204
+ from nipype .interfaces .io import DataFinder
205
+ df = DataFinder ()
206
+ df .inputs .root_paths = os .path .join (outdir , '0' )
207
+ for min_depth in range (4 ):
208
+ for max_depth in range (min_depth , 4 ):
209
+ df .inputs .min_depth = min_depth
210
+ df .inputs .max_depth = max_depth
211
+ result = df .run ()
212
+ expected = [str (x ) for x in range (min_depth , max_depth + 1 )]
213
+ for path , exp_fname in zip (result .outputs .out_paths , expected ):
214
+ _ , fname = os .path .split (path )
215
+ yield assert_equal , fname , exp_fname
216
+
217
+ shutil .rmtree (outdir )
218
+
219
+
220
+ def test_datafinder_unpack ():
221
+ outdir = mkdtemp ()
222
+ single_res = os .path .join (outdir , "findme.txt" )
223
+ open (single_res , 'a' ).close ()
224
+ open (os .path .join (outdir , "dontfindme" ), 'a' ).close ()
225
+
226
+ from nipype .interfaces .io import DataFinder
227
+ df = DataFinder ()
228
+ df .inputs .root_paths = outdir
229
+ df .inputs .match_regex = '.+/(?P<basename>.+)\.txt'
230
+ df .inputs .unpack_single = True
231
+ result = df .run ()
232
+ print result .outputs .out_paths
233
+ yield assert_equal , result .outputs .out_paths , single_res
234
+
235
+
175
236
def test_freesurfersource ():
176
237
fss = nio .FreeSurferSource ()
177
238
yield assert_equal , fss .inputs .hemi , 'both'
0 commit comments