add testing for blend-files
This commit is contained in:
63
tests/blendfile_templates.py
Normal file
63
tests/blendfile_templates.py
Normal file
@@ -0,0 +1,63 @@
|
||||
# Apache License, Version 2.0
|
||||
|
||||
# Pass in:
|
||||
#
|
||||
# blender --python blendfile_templates.py -- destination/file.blend create_command return_code
|
||||
#
|
||||
# 'return_code' can be any number, use to check the script completes.
|
||||
|
||||
|
||||
def _clear_blend():
|
||||
import bpy
|
||||
|
||||
# copied from batch_import.py
|
||||
unique_obs = set()
|
||||
for scene in bpy.data.scenes:
|
||||
for obj in scene.objects[:]:
|
||||
scene.objects.unlink(obj)
|
||||
unique_obs.add(obj)
|
||||
|
||||
# remove obdata, for now only worry about the startup scene
|
||||
for bpy_data_iter in (bpy.data.objects, bpy.data.meshes, bpy.data.lamps, bpy.data.cameras):
|
||||
for id_data in bpy_data_iter:
|
||||
bpy_data_iter.remove(id_data)
|
||||
|
||||
|
||||
def create_blank():
|
||||
pass
|
||||
|
||||
|
||||
def create_image_single():
|
||||
import bpy
|
||||
image = bpy.data.images.new(name="MyImage", width=512, height=512)
|
||||
image.filepath_raw = "//my_image.png"
|
||||
image.file_format = 'PNG'
|
||||
image.use_fake_user = True
|
||||
image.save()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
import sys
|
||||
blendfile, create_id, returncode = sys.argv[-3:]
|
||||
returncode = int(returncode)
|
||||
create_fn = globals()[create_id]
|
||||
|
||||
# ----
|
||||
import bpy
|
||||
# no need for blend1's
|
||||
bpy.context.user_preferences.filepaths.save_version = 0
|
||||
# WEAK! (but needed)
|
||||
# save the file first, so we can do real, relative dirs
|
||||
bpy.ops.wm.save_mainfile('EXEC_DEFAULT', filepath=blendfile)
|
||||
del bpy
|
||||
# ----
|
||||
|
||||
_clear_blend()
|
||||
create_fn()
|
||||
|
||||
import bpy
|
||||
bpy.ops.wm.save_mainfile('EXEC_DEFAULT', filepath=blendfile)
|
||||
|
||||
import sys
|
||||
sys.exit(returncode)
|
||||
|
Reference in New Issue
Block a user