forked from bartvdbraak/blender
Fix Python CTest's, ignore 'addons_contrib'
Too many contrib addons are in an unstable state making the test not so useful. Thanks to Sergey initial patch: D1012, redid mostly - but outcome is the same.
This commit is contained in:
parent
88222fac63
commit
bb4c34fe78
@ -20,12 +20,28 @@
|
||||
|
||||
# simple script to enable all addons, and disable
|
||||
|
||||
"""
|
||||
./blender.bin --background -noaudio --factory-startup --python tests/python/bl_load_addons.py
|
||||
"""
|
||||
|
||||
import bpy
|
||||
import addon_utils
|
||||
|
||||
import os
|
||||
import sys
|
||||
import imp
|
||||
|
||||
BLACKLIST_DIRS = (
|
||||
os.path.join(bpy.utils.resource_path('USER'), "scripts"),
|
||||
) + tuple(addon_utils.paths()[1:])
|
||||
|
||||
|
||||
def addon_modules_sorted():
|
||||
modules = addon_utils.modules({})
|
||||
modules[:] = [mod for mod in modules if not mod.__file__.startswith(BLACKLIST_DIRS)]
|
||||
modules.sort(key=lambda mod: mod.__name__)
|
||||
return modules
|
||||
|
||||
|
||||
def disable_addons():
|
||||
# first disable all
|
||||
@ -36,8 +52,7 @@ def disable_addons():
|
||||
|
||||
|
||||
def test_load_addons():
|
||||
modules = addon_utils.modules({})
|
||||
modules.sort(key=lambda mod: mod.__name__)
|
||||
modules = addon_modules_sorted()
|
||||
|
||||
disable_addons()
|
||||
|
||||
@ -62,8 +77,7 @@ def test_load_addons():
|
||||
|
||||
|
||||
def reload_addons(do_reload=True, do_reverse=True):
|
||||
modules = addon_utils.modules({})
|
||||
modules.sort(key=lambda mod: mod.__name__)
|
||||
modules = addon_modules_sorted()
|
||||
addons = bpy.context.user_preferences.addons
|
||||
|
||||
disable_addons()
|
||||
@ -76,7 +90,7 @@ def reload_addons(do_reload=True, do_reverse=True):
|
||||
addon_utils.enable(mod_name)
|
||||
assert(mod_name in addons)
|
||||
|
||||
for mod in addon_utils.modules({}):
|
||||
for mod in modules:
|
||||
mod_name = mod.__name__
|
||||
print("\tdisabling:", mod_name)
|
||||
addon_utils.disable(mod_name)
|
||||
@ -86,9 +100,9 @@ def reload_addons(do_reload=True, do_reverse=True):
|
||||
if do_reload:
|
||||
imp.reload(sys.modules[mod_name])
|
||||
|
||||
if do_reverse:
|
||||
# in case order matters when it shouldn't
|
||||
modules.reverse()
|
||||
if do_reverse:
|
||||
# in case order matters when it shouldn't
|
||||
modules.reverse()
|
||||
|
||||
|
||||
def main():
|
||||
|
@ -20,6 +20,10 @@
|
||||
|
||||
# simple script to enable all addons, and disable
|
||||
|
||||
"""
|
||||
./blender.bin --background -noaudio --factory-startup --python tests/python/bl_load_py_modules.py
|
||||
"""
|
||||
|
||||
import bpy
|
||||
import addon_utils
|
||||
|
||||
@ -30,8 +34,20 @@ BLACKLIST = {
|
||||
"bl_i18n_utils",
|
||||
"cycles",
|
||||
"io_export_dxf", # TODO, check on why this fails
|
||||
'io_import_dxf', # Because of cydxfentity.so dependency
|
||||
}
|
||||
|
||||
BLACKLIST_DIRS = (
|
||||
os.path.join(bpy.utils.resource_path('USER'), "scripts"),
|
||||
) + tuple(addon_utils.paths()[1:])
|
||||
|
||||
|
||||
def addon_modules_sorted():
|
||||
modules = addon_utils.modules({})
|
||||
modules[:] = [mod for mod in modules if not mod.__file__.startswith(BLACKLIST_DIRS)]
|
||||
modules.sort(key=lambda mod: mod.__name__)
|
||||
return modules
|
||||
|
||||
|
||||
def source_list(path, filename_check=None):
|
||||
from os.path import join
|
||||
@ -47,8 +63,7 @@ def source_list(path, filename_check=None):
|
||||
|
||||
|
||||
def load_addons():
|
||||
modules = addon_utils.modules({})
|
||||
modules.sort(key=lambda mod: mod.__name__)
|
||||
modules = addon_modules_sorted()
|
||||
addons = bpy.context.user_preferences.addons
|
||||
|
||||
# first disable all
|
||||
@ -79,9 +94,10 @@ def load_modules():
|
||||
for script_path in paths:
|
||||
for mod_dir in sys.path:
|
||||
if mod_dir.startswith(script_path):
|
||||
if mod_dir not in module_paths:
|
||||
if os.path.exists(mod_dir):
|
||||
module_paths.append(mod_dir)
|
||||
if not mod_dir.startswith(BLACKLIST_DIRS):
|
||||
if mod_dir not in module_paths:
|
||||
if os.path.exists(mod_dir):
|
||||
module_paths.append(mod_dir)
|
||||
|
||||
#
|
||||
# collect modules from our paths.
|
||||
|
Loading…
Reference in New Issue
Block a user