From 2c369675a9e80deeeb524152c48d274c45dc25c3 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauldmccarthy@gmail.com>
Date: Thu, 2 Nov 2017 17:43:01 +0000
Subject: [PATCH] TEST: make atlasq unit tests runnable

---
 tests/__init__.py                 | 66 +++++++++++++++++++++++++++++++
 tests/test_atlasq_list_summary.py |  4 +-
 tests/test_atlasq_ohi.py          |  4 +-
 tests/test_atlasq_query.py        |  2 +-
 4 files changed, 71 insertions(+), 5 deletions(-)

diff --git a/tests/__init__.py b/tests/__init__.py
index ad7992ef4..4b3bd1dc4 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 33c8d68dd..7eba70fe1 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 161bbda10..b798eaaaa 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 a8dd38a28..4c37ee34e 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,
-- 
GitLab