[Bf-blender-cvs] [16d58a509aa] soc-2020-testing-frameworks: Added Curve support in framework and tests for Generate Modifiers

calra123 noreply at git.blender.org
Sun Jul 26 21:27:53 CEST 2020


Commit: 16d58a509aa7c2aaf14bc39915261aca8e2f9123
Author: calra123
Date:   Sat Jul 18 03:51:15 2020 +0530
Branches: soc-2020-testing-frameworks
https://developer.blender.org/rB16d58a509aa7c2aaf14bc39915261aca8e2f9123

Added Curve support in framework and tests for Generate Modifiers

===================================================================

M	tests/python/modifiers.py
M	tests/python/modules/mesh_test.py

===================================================================

diff --git a/tests/python/modifiers.py b/tests/python/modifiers.py
index f0b2ef77c37..6450826d181 100644
--- a/tests/python/modifiers.py
+++ b/tests/python/modifiers.py
@@ -266,6 +266,43 @@ def main():
         ["WavePlane", "testObjPlaneWave", "expObjPlaneWave",
          [ModifierSpec('wave', 'WAVE', {})]],
 
+        #### CURVES ####
+        # Caution: Make sure test object has no modifier in "added" state, the test may fail.
+        ["BezCurveArray", "testObjBezierCurveArray", "expObjBezierCurveArray",
+         [ModifierSpec('array', 'ARRAY', {})]],
+
+        ["CurveBevel", "testObjBezierCurveBevel", "expObjBezierCurveBevel",
+         [ModifierSpec('bevel', 'BEVEL', {})]],
+
+        ["CurveBuild", "testObjBezierCurveBuild", "expObjBezierCurveBuild",
+         [ModifierSpec('build', 'BUILD', {'frame_start': 0, 'frame_duration': 1})]],
+
+        ["CurveDecimate", "testObjBezierCurveDecimate", "expObjBezierCurveDecimate",
+         [ModifierSpec('decimate', 'DECIMATE', {'ratio':0.5})]],
+
+        ["CurveEdgeSplit", "testObjBezierCurveEdgeSplit", "expObjBezierCurveEdgeSplit",
+         [ModifierSpec('edgeSplit', 'EDGE_SPLIT', {})]],
+
+        ["CurveMirror", "testObjBezierCurveMirror", "expObjBezierCurveMirror",
+         [ModifierSpec('mirror', 'MIRROR', {'use_axis': (True, True, False)})]],
+
+        ["CurveScrew", "testObjBezierCurveScrew", "expObjBezierCurveScrew",
+         [ModifierSpec('screw', 'SCREW', {})]],
+
+        ["CurveSolidify", "testObjBezierCurveSolidify", "expObjBezierCurveSolidify",
+         [ModifierSpec('solidify', 'SOLIDIFY', {'thickness':1})]],
+
+        ["CurveSubSurf", "testObjBezierCurveSubSurf", "expObjBezierCurveSubSurf",
+         [ModifierSpec('subSurf', 'SUBSURF', {})]],
+
+        ["CurveTriangulate", "testObjBezierCurveTriangulate", "expObjBezierCurveTriangulate",
+         [ModifierSpec('triangulate', 'TRIANGULATE', {})]],
+
+        # Test 60
+        ["CurveWeld", "testObjBezierCurveWeld", "expObjBezierCurveWeld",
+         [ModifierSpec('weld', 'WELD', {})]],
+
+
     ]
 
     modifiers_test = ModifierTest(tests)
diff --git a/tests/python/modules/mesh_test.py b/tests/python/modules/mesh_test.py
index d8c81396f41..df11cdca4df 100644
--- a/tests/python/modules/mesh_test.py
+++ b/tests/python/modules/mesh_test.py
@@ -297,6 +297,14 @@ class MeshTest:
                 raise AttributeError("Modifier '{}' has no parameter named '{}'".
                                      format(modifier_spec.modifier_type, param_name))
 
+    def _apply_modifier(self, test_object, modifier_name):
+        # Modifier automatically gets applied when converting from Curve to Mesh.
+        if test_object.type == 'CURVE':
+            bpy.ops.object.convert(target='MESH')
+
+        elif test_object.type == 'MESH':
+            bpy.ops.object.modifier_apply(modifier=modifier_name)
+
     def _bake_current_simulation(self, obj, test_mod_type, test_mod_name, frame_end):
         for scene in bpy.data.scenes:
             for modifier in obj.modifiers:
@@ -414,7 +422,8 @@ class MeshTest:
 
         if self.apply_modifier:
             for mod_name in modifier_names:
-                bpy.ops.object.modifier_apply(modifier=mod_name)
+                self._apply_modifier(test_object, mod_name)
+
 
     def run_test(self):
         """
@@ -443,7 +452,7 @@ class MeshTest:
             if isinstance(operation, ModifierSpec):
                 self._add_modifier(evaluated_test_object, operation)
                 if self.apply_modifier:
-                    bpy.ops.object.modifier_apply(modifier=operation.modifier_name)
+                    self._apply_modifier(evaluated_test_object,operation.modifier_name)
 
             elif isinstance(operation, OperatorSpec):
                 self._apply_operator(evaluated_test_object, operation)



More information about the Bf-blender-cvs mailing list