[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50824] trunk/blender/source/tests/ bl_run_operators.py: add more tests to run operators testing script
Campbell Barton
ideasman42 at gmail.com
Sun Sep 23 11:37:48 CEST 2012
Revision: 50824
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50824
Author: campbellbarton
Date: 2012-09-23 09:37:47 +0000 (Sun, 23 Sep 2012)
Log Message:
-----------
add more tests to run operators testing script
Modified Paths:
--------------
trunk/blender/source/tests/bl_run_operators.py
Modified: trunk/blender/source/tests/bl_run_operators.py
===================================================================
--- trunk/blender/source/tests/bl_run_operators.py 2012-09-23 07:18:50 UTC (rev 50823)
+++ trunk/blender/source/tests/bl_run_operators.py 2012-09-23 09:37:47 UTC (rev 50824)
@@ -44,7 +44,7 @@
"help.operator_cheat_sheet",
"wm.keyconfig_test", # just annoying - but harmless
"wm.memory_statistics", # another annoying one
- # "mesh.vertex_color_remove", #crashes! fixme
+ "console.*", # just annoying - but harmless
)
@@ -61,7 +61,7 @@
operators[:] = [op for op in operators if is_op_ok(op[0])]
-def run_ops(operators, setup_func=None):
+def run_ops(operators, setup_func=None, reset=True):
print("\ncontext:", setup_func.__name__)
# first invoke
for op_id, op in operators:
@@ -70,7 +70,8 @@
sys.stdout.flush() # in case of crash
# disable will get blender in a bad state and crash easy!
- bpy.ops.wm.read_factory_settings()
+ if reset:
+ bpy.ops.wm.read_factory_settings()
setup_func()
@@ -82,6 +83,11 @@
#traceback.print_exc()
pass
+ if not operators:
+ # run test
+ if reset:
+ bpy.ops.wm.read_factory_settings()
+ setup_func()
# contexts
def ctx_clear_scene(): # copied from batch_import.py
@@ -99,14 +105,36 @@
def ctx_editmode_mesh():
bpy.ops.object.mode_set(mode='EDIT')
+
+
+def ctx_editmode_mesh_extra():
bpy.ops.object.vertex_group_add()
+ bpy.ops.object.shape_key_add(from_mix=False)
+ bpy.ops.object.shape_key_add(from_mix=True)
+ bpy.ops.mesh.uv_texture_add()
+ bpy.ops.mesh.vertex_color_add()
+ bpy.ops.object.material_slot_add()
+ # editmode last!
+ bpy.ops.object.mode_set(mode='EDIT')
+def ctx_editmode_mesh_empty():
+ bpy.ops.object.mode_set(mode='EDIT')
+ bpy.ops.mesh.select_all(action='SELECT')
+ bpy.ops.mesh.delete()
+
+
def ctx_editmode_curves():
bpy.ops.curve.primitive_nurbs_circle_add()
bpy.ops.object.mode_set(mode='EDIT')
+def ctx_editmode_curves_empty():
+ bpy.ops.curve.primitive_nurbs_circle_add()
+ bpy.ops.object.mode_set(mode='EDIT')
+ bpy.ops.curve.delete(type='ALL')
+
+
def ctx_editmode_surface():
bpy.ops.surface.primitive_nurbs_surface_torus_add()
bpy.ops.object.mode_set(mode='EDIT')
@@ -127,6 +155,13 @@
bpy.ops.object.mode_set(mode='EDIT')
+def ctx_editmode_armature_empty():
+ bpy.ops.object.armature_add()
+ bpy.ops.object.mode_set(mode='EDIT')
+ bpy.ops.armature.select_all(action='SELECT')
+ bpy.ops.armature.delete()
+
+
def ctx_editmode_lattice():
bpy.ops.object.add(type='LATTICE')
bpy.ops.object.mode_set(mode='EDIT')
@@ -137,10 +172,28 @@
bpy.ops.object.add(type='EMPTY')
-def ctx_weightpaint():
+def ctx_object_pose():
+ bpy.ops.object.armature_add()
+ bpy.ops.object.mode_set(mode='POSE')
+ bpy.ops.pose.select_all(action='SELECT')
+
+
+def ctx_object_paint_weight():
bpy.ops.object.mode_set(mode='WEIGHT_PAINT')
+def ctx_object_paint_vertex():
+ bpy.ops.object.mode_set(mode='VERTEX_PAINT')
+
+
+def ctx_object_paint_sculpt():
+ bpy.ops.object.mode_set(mode='SCULPT')
+
+
+def ctx_object_paint_texture():
+ bpy.ops.object.mode_set(mode='TEXTURE_PAINT')
+
+
def bpy_check_type_duplicates():
# non essential sanity check
bl_types = dir(bpy.types)
@@ -178,21 +231,39 @@
#import random
#random.shuffle(operators)
+
+ # 2 passes, first just run setup_func to make sure they are ok
+ for operators_test in ((), operators):
+ # Run the operator tests in different contexts
+ run_ops(operators_test, setup_func=lambda: None)
+ run_ops(operators_test, setup_func=ctx_clear_scene)
+ # object modes
+ run_ops(operators_test, setup_func=ctx_object_empty)
+ run_ops(operators_test, setup_func=ctx_object_pose)
+ run_ops(operators_test, setup_func=ctx_object_paint_weight)
+ run_ops(operators_test, setup_func=ctx_object_paint_vertex)
+ run_ops(operators_test, setup_func=ctx_object_paint_sculpt)
+ run_ops(operators_test, setup_func=ctx_object_paint_texture)
+ # mesh
+ run_ops(operators_test, setup_func=ctx_editmode_mesh)
+ run_ops(operators_test, setup_func=ctx_editmode_mesh_extra)
+ run_ops(operators_test, setup_func=ctx_editmode_mesh_empty)
+ # armature
+ run_ops(operators_test, setup_func=ctx_editmode_armature)
+ run_ops(operators_test, setup_func=ctx_editmode_armature_empty)
+ # curves
+ run_ops(operators_test, setup_func=ctx_editmode_curves)
+ run_ops(operators_test, setup_func=ctx_editmode_curves_empty)
+ run_ops(operators_test, setup_func=ctx_editmode_surface)
+ # other
+ run_ops(operators_test, setup_func=ctx_editmode_mball)
+ run_ops(operators_test, setup_func=ctx_editmode_text)
+ run_ops(operators_test, setup_func=ctx_editmode_lattice)
+
+ if not operators_test:
+ print("All setup functions run fine!")
- # Run the operator tests in different contexts
- run_ops(operators, setup_func=lambda: None)
- run_ops(operators, setup_func=ctx_editmode_surface)
- run_ops(operators, setup_func=ctx_object_empty)
- run_ops(operators, setup_func=ctx_editmode_armature)
- run_ops(operators, setup_func=ctx_editmode_mesh)
- run_ops(operators, setup_func=ctx_clear_scene)
- run_ops(operators, setup_func=ctx_editmode_curves)
- run_ops(operators, setup_func=ctx_editmode_mball)
- run_ops(operators, setup_func=ctx_editmode_text)
- run_ops(operators, setup_func=ctx_weightpaint)
- run_ops(operators, setup_func=ctx_editmode_lattice)
+ print("Finished %r" % __file__)
- print("finished")
-
if __name__ == "__main__":
main()
More information about the Bf-blender-cvs
mailing list