Modules test: Don't print backtrace for files which are ignored
authorSergey Sharybin <sergey.vfx@gmail.com>
Wed, 9 Aug 2017 07:42:03 +0000 (09:42 +0200)
committerSergey Sharybin <sergey.vfx@gmail.com>
Wed, 9 Aug 2017 07:42:03 +0000 (09:42 +0200)
This could make output really polluted, where it'll be hard to see actual
issues.

It is still possible to have all backtraces printed using BLENDER_VERBOSE
environment variable.

tests/python/bl_load_py_modules.py

index 7ffececd1d9bc6631bb587227b41f122b0f55410..2d8a908406f923c96e174d93ba7211d03824ae18 100644 (file)
@@ -123,6 +123,8 @@ def load_addons():
 
 
 def load_modules():
+    VERBOSE = os.environ.get("BLENDER_VERBOSE") is not None
+
     modules = []
     module_paths = []
 
@@ -161,6 +163,14 @@ def load_modules():
             module_names[mod] = mod_dir, mod_full
     del module_names
 
+    #
+    # test we tested all files except for presets and templates
+    ignore_paths = [
+        os.sep + "presets" + os.sep,
+        os.sep + "templates" + os.sep,
+    ] + ([(os.sep + f + os.sep) for f in BLACKLIST] +
+         [(os.sep + f + ".py")  for f in BLACKLIST])
+
     #
     # now submodules
     for m in modules:
@@ -199,7 +209,14 @@ def load_modules():
                     #   import failure.
                     # - We want to catch all failures of this script instead of stopping on
                     #   a first big failure.
-                    traceback.print_exc()
+                    do_print = True
+                    if not VERBOSE:
+                        for ignore in ignore_paths:
+                            if ignore in submod_full:
+                                do_print = False
+                                break
+                    if do_print:
+                        traceback.print_exc()
 
     #
     # check which filepaths we didn't load
@@ -218,14 +235,6 @@ def load_modules():
     for f in loaded_files:
         source_files.remove(f)
 
-    #
-    # test we tested all files except for presets and templates
-    ignore_paths = [
-        os.sep + "presets" + os.sep,
-        os.sep + "templates" + os.sep,
-    ] + ([(os.sep + f + os.sep) for f in BLACKLIST] +
-         [(os.sep + f + ".py")  for f in BLACKLIST])
-
     for f in source_files:
         for ignore in ignore_paths:
             if ignore in f: