From 3953e8573f6415ab8b96f12e60500f83fcbd6077 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauldmccarthy@gmail.com>
Date: Wed, 25 Oct 2017 15:44:09 +0100
Subject: [PATCH] make importall test a bit more robust

---
 tests/test_importall.py | 32 +++++++++++++++++++-------------
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/tests/test_importall.py b/tests/test_importall.py
index dfa867efd..ca8027790 100644
--- a/tests/test_importall.py
+++ b/tests/test_importall.py
@@ -6,20 +6,26 @@
 #
 
 
+
 import pkgutil
+import importlib
+import fsl
 
 
 def test_importall():
-    import fsl         as fsl
-    import fsl.data    as data
-    import fsl.utils   as utils
-    import fsl.scripts as scripts
-
-    for _, module, _ in pkgutil.iter_modules(fsl.__path__, 'fsl.'):
-        __import__(module) 
-    for _, module, _ in pkgutil.iter_modules(data.__path__, 'fsl.data.'):
-        __import__(module)
-    for _, module, _ in pkgutil.iter_modules(utils.__path__, 'fsl.utils.'):
-        __import__(module)
-    for _, module, _ in pkgutil.iter_modules(scripts.__path__, 'fsl.scripts.'):
-        __import__(module) 
+
+
+    def recurse(module):
+
+        path    = module.__path__
+        name    = module.__name__
+        submods = list(pkgutil.iter_modules(path, '{}.'.format(name)))
+
+        for i, (spath, smodname, ispkg) in enumerate(submods):
+
+            submod = importlib.import_module(smodname)
+
+            if ispkg:
+                recurse(submod)
+
+    recurse(fsl)
-- 
GitLab