[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53193] trunk/blender/source/tests/ bl_load_addons.py: add a test to the addons loaded that tries to load all addons then lists addons that fail .

Campbell Barton ideasman42 at gmail.com
Thu Dec 20 04:10:37 CET 2012


Revision: 53193
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53193
Author:   campbellbarton
Date:     2012-12-20 03:10:30 +0000 (Thu, 20 Dec 2012)
Log Message:
-----------
add a test to the addons loaded that tries to load all addons then lists addons that fail.

Modified Paths:
--------------
    trunk/blender/source/tests/bl_load_addons.py

Modified: trunk/blender/source/tests/bl_load_addons.py
===================================================================
--- trunk/blender/source/tests/bl_load_addons.py	2012-12-20 03:08:27 UTC (rev 53192)
+++ trunk/blender/source/tests/bl_load_addons.py	2012-12-20 03:10:30 UTC (rev 53193)
@@ -26,18 +26,47 @@
 import sys
 import imp
 
+def disable_addons():
+    # first disable all
+    addons = bpy.context.user_preferences.addons
+    for mod_name in list(addons.keys()):
+        addon_utils.disable(mod_name)
+    assert(bool(addons) is False)
 
+
+def test_load_addons():
+    modules = addon_utils.modules({})
+    modules.sort(key=lambda mod: mod.__name__)
+
+    disable_addons()
+
+    addons = bpy.context.user_preferences.addons
+
+    addons_fail = []
+
+    for mod in modules:
+        mod_name = mod.__name__
+        print("\tenabling:", mod_name)
+        addon_utils.enable(mod_name)
+        if mod_name not in addons:
+            addons_fail.append(mod_name)
+    
+    if addons_fail:
+        print("addons failed to load (%d):" % len(addons_fail))
+        for mod_name in addons_fail:
+            print("    %s" % mod_name)
+    else:
+        print("addons all loaded without errors!")
+    print("")
+
+
 def reload_addons(do_reload=True, do_reverse=True):
     modules = addon_utils.modules({})
     modules.sort(key=lambda mod: mod.__name__)
     addons = bpy.context.user_preferences.addons
 
-    # first disable all
-    for mod_name in list(addons.keys()):
-        addon_utils.disable(mod_name)
+    disable_addons()
 
-    assert(bool(addons) is False)
-
     # Run twice each time.
     for i in (0, 1):
         for mod in modules:
@@ -62,6 +91,9 @@
 
 
 def main():
+    # first load addons, print a list of all addons that fail
+    test_load_addons()
+    
     reload_addons(do_reload=False, do_reverse=False)
     reload_addons(do_reload=False, do_reverse=True)
     reload_addons(do_reload=True, do_reverse=True)




More information about the Bf-blender-cvs mailing list