Something went wrong on our end
Forked from
FSL / fslpy
1983 commits behind the upstream repository.
-
Paul McCarthy authoredPaul McCarthy authored
test_imglob.py 5.66 KiB
#!/usr/bin/env python
#
# test_imglob.py -
#
# Author: Paul McCarthy <pauldmccarthy@gmail.com>
#
import mock
import pytest
import fsl.scripts.imglob as imglob
from tests import testdir
from tests import CaptureStdout
def test_imglob_shouldPass():
# (files to create, paths, output, expected)
tests = [
# normal usage, one file
('file.hdr file.img', 'file', None, 'file'),
('file.hdr file.img', 'file', 'prefix', 'file'),
('file.hdr file.img', 'file', 'primary', 'file.hdr'),
('file.hdr file.img', 'file', 'all', 'file.hdr file.img'),
# incomplete file pair
('file.hdr', 'file', 'prefix', 'file'),
('file.hdr', 'file.hdr', 'prefix', 'file'),
('file.hdr', 'file.img', 'prefix', 'file'),
('file.hdr', 'file', 'primary', 'file.hdr'),
('file.hdr', 'file.hdr', 'primary', 'file.hdr'),
('file.hdr', 'file.img', 'primary', 'file.hdr'),
('file.hdr', 'file', 'all', 'file.hdr'),
('file.hdr', 'file.hdr', 'all', 'file.hdr'),
('file.hdr', 'file.img', 'all', 'file.hdr'),
# same file specified multiple times
('file.hdr file.img', 'file file', 'prefix', 'file'),
('file.hdr file.img', 'file file.img', 'prefix', 'file'),
('file.hdr file.img', 'file file.img file.hdr', 'prefix', 'file'),
('file.hdr file.img', 'file file', 'primary', 'file.hdr'),
('file.hdr file.img', 'file file.img', 'primary', 'file.hdr'),
('file.hdr file.img', 'file file.img file.hdr', 'primary', 'file.hdr'),
('file.hdr file.img', 'file file', 'all', 'file.hdr file.img'),
('file.hdr file.img', 'file file.img', 'all', 'file.hdr file.img'),
('file.hdr file.img', 'file file.img file.hdr', 'all', 'file.hdr file.img'),
# multiple files same prefix
('file.hdr file.img file.nii', 'file', 'prefix', 'file'),
('file.hdr file.img file.nii', 'file', 'primary', 'file.hdr file.nii'),
('file.hdr file.img file.nii', 'file', 'all', 'file.hdr file.img file.nii'),
# multiple files
('file1.hdr file1.img file2.nii', 'file1', 'prefix', 'file1'),
('file1.hdr file1.img file2.nii', 'file1', 'primary', 'file1.hdr'),
('file1.hdr file1.img file2.nii', 'file1', 'all', 'file1.hdr file1.img'),
('file1.hdr file1.img file2.nii', 'file1 file2', 'prefix', 'file1 file2'),
('file1.hdr file1.img file2.nii', 'file1 file2', 'primary', 'file1.hdr file2.nii'),
('file1.hdr file1.img file2.nii', 'file1 file2', 'all', 'file1.hdr file1.img file2.nii'),
# no file
('file.nii', 'bag', 'prefix', ''),
('file.nii', 'bag', 'primary', ''),
('file.nii', 'bag', 'all', ''),
# incomplete prefix
('file.nii', 'fi', 'prefix', ''),
('file.nii', 'fi', 'primary', ''),
('file.nii', 'fi', 'all', ''),
]
for to_create, paths, output, expected in tests:
with testdir(to_create.split()) as td:
paths = paths.split()
expected = expected.split()
result = imglob.imglob(paths, output)
assert sorted(result) == sorted(expected)
def test_imglob_shouldFail():
with pytest.raises(ValueError):
imglob.imglob([], 'bag')
def test_imglob_script_shouldPass():
# (files to create, args, expected)
tests = [
('file.hdr file.img', 'file', 'file'),
('file.hdr file.img', '-extension file', 'file.hdr'),
('file.hdr file.img', '-extensions file', 'file.hdr file.img'),
('file.hdr file.img', 'file.hdr', 'file'),
('file.hdr file.img', ' -extension file.hdr', 'file.hdr'),
('file.hdr file.img', '-extensions file.hdr', 'file.hdr file.img'),
('file.hdr file.img', 'file.img', 'file'),
('file.hdr file.img', '-extension file.img', 'file.hdr'),
('file.hdr file.img', '-extensions file.img', 'file.hdr file.img'),
('file.hdr file.img', 'file.hdr file.img', 'file'),
('file.hdr file.img', '-extension file.hdr file.img', 'file.hdr'),
('file.hdr file.img', '-extensions file.hdr file.img', 'file.hdr file.img'),
('file.hdr file.img', 'file file.img', 'file'),
('file.hdr file.img', '-extension file file.img', 'file.hdr'),
('file.hdr file.img', '-extensions file file.img', 'file.hdr file.img'),
# no file or incomplete prefix
('file.hdr file.img', 'bag', ''),
('file.hdr file.img', '-extension bag', ''),
('file.hdr file.img', '-extensions bag', ''),
('file.hdr file.img', 'fi', ''),
('file.hdr file.img', '-extension fi', ''),
('file.hdr file.img', '-extensions fi', ''),
]
capture = CaptureStdout()
for to_create, args, expected in tests:
with testdir(to_create.split()) as td:
capture.reset()
with capture:
assert imglob.main(args.split()) == 0
assert capture.stdout.strip().split() == expected.split()
def test_imglob_script_shouldFail():
capture = CaptureStdout()
with capture:
assert imglob.main([]) != 0
assert capture.stdout.strip().lower().startswith('usage:')
with capture, mock.patch('sys.argv', ['imglob']):
assert imglob.main() != 0
assert capture.stdout.strip().lower().startswith('usage:')