[Bf-blender-cvs] [35d9f681213] master: Python module test: Don't cfail the test when import failure happens in preset

Sergey Sharybin noreply at git.blender.org
Tue Jul 25 11:39:16 CEST 2017


Commit: 35d9f681213c56429829afa01b13ee77d621e9d3
Author: Sergey Sharybin
Date:   Tue Jul 25 11:38:33 2017 +0200
Branches: master
https://developer.blender.org/rB35d9f681213c56429829afa01b13ee77d621e9d3

Python module test: Don't cfail the test when import failure happens in preset

===================================================================

M	tests/python/bl_load_py_modules.py

===================================================================

diff --git a/tests/python/bl_load_py_modules.py b/tests/python/bl_load_py_modules.py
index 80933cd5b61..7ffececd1d9 100644
--- a/tests/python/bl_load_py_modules.py
+++ b/tests/python/bl_load_py_modules.py
@@ -178,15 +178,28 @@ def load_modules():
                     for f in MODULE_SYS_PATHS.get(mod_name_full, ())
                     ])
 
-                __import__(mod_name_full)
-                mod_imp = sys.modules[mod_name_full]
-
-                sys.path[:] = sys_path_back
-
-                # check we load what we ask for.
-                assert(os.path.samefile(mod_imp.__file__, submod_full))
-
-                modules.append(mod_imp)
+                try:
+                    __import__(mod_name_full)
+                    mod_imp = sys.modules[mod_name_full]
+
+                    sys.path[:] = sys_path_back
+
+                    # check we load what we ask for.
+                    assert(os.path.samefile(mod_imp.__file__, submod_full))
+
+                    modules.append(mod_imp)
+                except Exception as e:
+                    import traceback
+                    # Module might fail to import, but we don't want whole test to fail here.
+                    # Reasoning:
+                    # - This module might be in ignored list (for example, preset or template),
+                    #   so failing here will cause false-positive test failure.
+                    # - If this is module which should not be ignored, it is not added to list
+                    #   of successfully loaded modules, meaning the test will catch this
+                    #   import failure.
+                    # - We want to catch all failures of this script instead of stopping on
+                    #   a first big failure.
+                    traceback.print_exc()
 
     #
     # check which filepaths we didn't load




More information about the Bf-blender-cvs mailing list