[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