diff options
Diffstat (limited to 'source/tests/batch_import.py')
-rw-r--r-- | source/tests/batch_import.py | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/source/tests/batch_import.py b/source/tests/batch_import.py index 5fbe38e08ce..5c228c014ca 100644 --- a/source/tests/batch_import.py +++ b/source/tests/batch_import.py @@ -34,6 +34,14 @@ Example Usage: --match="*.3ds" \ --start=0 --end=1000 \ --save_path=/tmp/test + +./blender.bin --background --addons io_curve_svg --python source/tests/batch_import.py -- \ + --operator="bpy.ops.import_curve.svg" \ + --path="/usr/" \ + --match="*.svg" \ + --start=0 --end=1000 \ + --save_path=/tmp/test + """ import os @@ -61,8 +69,9 @@ def batch_import(operator="", start=0, end=sys.maxsize, ): + import addon_utils + _reset_all = addon_utils.reset_all # XXX, hack - print(list(globals().keys())) import fnmatch path = os.path.normpath(path) @@ -94,16 +103,29 @@ def batch_import(operator="", if len(files) != files_len: print(" using a subset in (%d, %d), total %d" % (start, end, len(files)), end="") - print("") - import bpy op = eval(operator) + + tot_done = 0 + tot_fail = 0 + for i, f in enumerate(files): print(" %s(filepath=%r) # %d of %d" % (operator, f, i + start, len(files))) + + # hack so loading the new file doesnt undo our loaded addons + addon_utils.reset_all = lambda: None # XXX, hack + bpy.ops.wm.read_factory_settings() + + addon_utils.reset_all = _reset_all # XXX, hack clear_scene() - op(filepath=f) + result = op(filepath=f) + + if 'FINISHED' in result: + tot_done += 1 + else: + tot_fail += 1 if save_path: fout = os.path.join(save_path, os.path.relpath(f, path)) @@ -117,6 +139,8 @@ def batch_import(operator="", bpy.ops.wm.save_as_mainfile(filepath=fout_blend) + print("finished, done:%d, fail:%d" % (tot_done, tot_fail)) + def main(): import optparse |