[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