diff --git a/tests/__init__.py b/tests/__init__.py index ad7992ef46096b8417db29785bb4d4c8a785ff6a..4b3bd1dc4c76563cab4d645feec88090925abac4 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -8,17 +8,83 @@ import os +import sys import glob import shutil import tempfile +import contextlib import itertools as it import os.path as op import numpy as np import nibabel as nib +from six import StringIO + import fsl.data.image as fslimage + +@contextlib.contextmanager +def tempdir(): + """Returnsa context manager which creates and returns a temporary + directory, and then deletes it on exit. + """ + + testdir = tempfile.mkdtemp() + prevdir = os.getcwd() + try: + + os.chdir(testdir) + yield testdir + + finally: + os.chdir(prevdir) + shutil.rmtree(testdir) + + +class CaptureStdout(object): + """Context manager which captures stdout and stderr. """ + + def __init__(self): + self.reset() + + def reset(self): + self.__mock_stdout = StringIO('') + self.__mock_stderr = StringIO('') + + def __enter__(self): + self.__real_stdout = sys.stdout + self.__real_stderr = sys.stderr + + sys.stdout = self.__mock_stdout + sys.stderr = self.__mock_stderr + + + def __exit__(self, *args, **kwargs): + sys.stdout = self.__real_stdout + sys.stderr = self.__real_stderr + + if args[0] is not None: + print('Error') + print('stdout:') + print(self.stdout) + print('stderr:') + print(self.stderr) + + return False + + @property + def stdout(self): + self.__mock_stdout.seek(0) + return self.__mock_stdout.read() + + @property + def stderr(self): + self.__mock_stderr.seek(0) + return self.__mock_stderr.read() + + + def testdir(contents=None): """Returnsa context manager which creates, changes to, and returns a temporary directory, and then deletes it on exit. diff --git a/tests/test_atlasq_list_summary.py b/tests/test_atlasq_list_summary.py index 33c8d68dd2e106347ff3d00e0969ff00aad9095d..7eba70fe1d8fa4f03d1fb1e44539230f5e4a10f9 100644 --- a/tests/test_atlasq_list_summary.py +++ b/tests/test_atlasq_list_summary.py @@ -8,8 +8,8 @@ import os import itertools as it -import fsl.data.atlases as fslatlases -import fsl.atlasq.atlasq as fslatlasq +import fsl.data.atlases as fslatlases +import fsl.scripts.atlasq as fslatlasq from . import CaptureStdout diff --git a/tests/test_atlasq_ohi.py b/tests/test_atlasq_ohi.py index 161bbda108a8977e980bd63937aa03a853552166..b798eaaaa7a1f36750a67b0fa0263444895bc8c8 100644 --- a/tests/test_atlasq_ohi.py +++ b/tests/test_atlasq_ohi.py @@ -13,8 +13,8 @@ import shlex import numpy as np -import fsl.atlasq.atlasq as fslatlasq -import fsl.data.atlases as fslatlases +import fsl.scripts.atlasq as fslatlasq +import fsl.data.atlases as fslatlases from . import (tempdir, make_random_mask, diff --git a/tests/test_atlasq_query.py b/tests/test_atlasq_query.py index a8dd38a286ce27ef22486b545aff6c72f6c89227..4c37ee34e502457e34f7d2824f1d6f10179f13be 100644 --- a/tests/test_atlasq_query.py +++ b/tests/test_atlasq_query.py @@ -17,7 +17,7 @@ import scipy.ndimage as ndi import fsl.utils.transform as transform import fsl.data.atlases as fslatlases import fsl.data.image as fslimage -import fsl.atlasq.atlasq as fslatlasq +import fsl.scripts.atlasq as fslatlasq from . import (tempdir, make_random_mask,