add a test to the addons loaded that tries to load all addons then lists addons that fail.
This commit is contained in:
@@ -26,17 +26,46 @@ import addon_utils
|
||||
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)
|
||||
|
||||
assert(bool(addons) is False)
|
||||
disable_addons()
|
||||
|
||||
# Run twice each time.
|
||||
for i in (0, 1):
|
||||
@@ -62,6 +91,9 @@ def reload_addons(do_reload=True, do_reverse=True):
|
||||
|
||||
|
||||
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)
|
||||
|
Reference in New Issue
Block a user