[Bf-blender-cvs] [1e41a9a86be] soc-2020-testing-frameworks: Post Review: fix coding styles, remove try..except, using value for enumerate

Himanshi Kalra noreply at git.blender.org
Tue Dec 15 18:07:55 CET 2020


Commit: 1e41a9a86be8366d60f561080b8a42a5f411e90b
Author: Himanshi Kalra
Date:   Tue Dec 15 22:18:41 2020 +0530
Branches: soc-2020-testing-frameworks
https://developer.blender.org/rB1e41a9a86be8366d60f561080b8a42a5f411e90b

Post Review: fix coding styles, remove try..except, using value for enumerate

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

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

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

diff --git a/tests/python/modules/mesh_test.py b/tests/python/modules/mesh_test.py
index 997a959ac17..1aa6aac80bf 100644
--- a/tests/python/modules/mesh_test.py
+++ b/tests/python/modules/mesh_test.py
@@ -169,14 +169,14 @@ class MeshTest:
     """
 
     def __init__(
-            self,
-            test_name: str,
-            test_object_name: str,
-            expected_object_name: str,
-            operations_stack=None,
-            apply_modifiers=False,
-            do_compare=False,
-            threshold=None
+        self,
+        test_name: str,
+        test_object_name: str,
+        expected_object_name: str,
+        operations_stack=None,
+        apply_modifiers=False,
+        do_compare=False,
+        threshold=None
     ):
         """
         Constructs a MeshTest object. Raises a KeyError if objects with names expected_object_name
@@ -275,34 +275,34 @@ class MeshTest:
         """
         return self._test_updated
 
-    def _set_parameters_util(self, modifier, modifier_parameters, nested_settings_path, modifier_name):
+    def _set_parameters_impl(self, modifier, modifier_parameters, nested_settings_path, modifier_name):
         """
         Doing a depth first traversal of the modifier parameters and setting their values.
-        :param: modifier: Of type modifier, its altered to become a setting in recursion
-        :param: modifier_parameters : dict, a simple/nested dictionary of modifier parameters.
+        :param: modifier: Of type modifier, its altered to become a setting in recursion.
+        :param: modifier_parameters : dict or sequence, a simple/nested dictionary of modifier parameters.
         :param: nested_settings_path : list(stack): helps in tracing path to each node.
         """
         if not isinstance(modifier_parameters, dict):
             param_setting = None
             for i, setting in enumerate(nested_settings_path):
-                try:
-                    # We want to set the attribute only when we have reached the last setting
-                    # Applying of intermediate settings is meaningless.
-                    if i == len(nested_settings_path) - 1:
-                        setattr(modifier, setting, modifier_parameters)
 
+                # We want to set the attribute only when we have reached the last setting.
+                # Applying of intermediate settings is meaningless.
+                if i == len(nested_settings_path) - 1:
+                    setattr(modifier, setting, modifier_parameters)
+
+                elif hasattr(modifier, setting):
+                    param_setting = getattr(modifier, setting)
+                    # getattr doesn't accept canvas_surfaces["Surface"], but we need to pass it to setattr.
+                    if setting == "canvas_surfaces":
+                        modifier = param_setting.active
                     else:
-                        param_setting = getattr(modifier, setting)
-                        # getattr doesn't accept canvas_surfaces["Surface"], but we need to pass it to setattr
-                        if setting == "canvas_surfaces":
-                            modifier = param_setting.active
-                        else:
-                            modifier = param_setting
-                except AttributeError:
+                        modifier = param_setting
+                else:
                     # Clean up first
                     bpy.ops.object.delete()
-                    raise AttributeError("Modifier '{}' has no parameter named '{}'".
-                                         format(modifier_name, setting))
+                    raise Exception("Modifier '{}' has no parameter named '{}'".
+                                    format(modifier_name, setting))
 
             # It pops the current node before moving on to its sibling.
             nested_settings_path.pop()
@@ -310,9 +310,9 @@ class MeshTest:
 
         for key in modifier_parameters:
             nested_settings_path.append(key)
-            self._set_parameters_util(modifier, modifier_parameters[key], nested_settings_path, modifier_name)
+            self._set_parameters_impl(modifier, modifier_parameters[key], nested_settings_path, modifier_name)
 
-        if len(nested_settings_path) != 0:
+        if nested_settings_path:
             nested_settings_path.pop()
 
     def set_parameters(self, modifier, modifier_parameters):
@@ -322,7 +322,7 @@ class MeshTest:
         settings = []
         modifier_copy = modifier
         modifier_name = modifier.name
-        self._set_parameters_util(modifier_copy, modifier_parameters, settings, modifier_name)
+        self._set_parameters_impl(modifier_copy, modifier_parameters, settings, modifier_name)
 
     def _add_modifier(self, test_object, modifier_spec: ModifierSpec):
         """
@@ -332,7 +332,7 @@ class MeshTest:
         """
         bakers_list = ['CLOTH', 'SOFT_BODY', 'DYNAMIC_PAINT', 'FLUID']
         scene = bpy.context.scene
-        scene.frame_set(0)
+        scene.frame_set(1)
         modifier = test_object.modifiers.new(modifier_spec.modifier_name,
                                              modifier_spec.modifier_type)
 
@@ -393,7 +393,7 @@ class MeshTest:
         """
         Applies Particle System settings to test objects
         """
-        bpy.context.scene.frame_set(0)
+        bpy.context.scene.frame_set(1)
         bpy.ops.object.select_all(action='DESELECT')
 
         test_object.modifiers.new(particle_sys_spec.modifier_name, particle_sys_spec.modifier_type)
@@ -463,8 +463,8 @@ class MeshTest:
             retval = mesh_operator(**operator.operator_parameters)
         except AttributeError:
             raise AttributeError("bpy.ops.mesh has no attribute {}".format(operator.operator_name))
-        except TypeError:
-            raise TypeError("Incorrect operator parameters {}".format(operator.operator_parameters))
+        except TypeError as ex:
+            raise TypeError("Incorrect operator parameters {!r} raised {!r}".format(operator.operator_parameters, ex))
 
         if retval != {'FINISHED'}:
             raise RuntimeError("Unexpected operator return value: {}".format(retval))
@@ -484,8 +484,8 @@ class MeshTest:
             retval = object_operator(**operator.operator_parameters)
         except AttributeError:
             raise AttributeError("bpy.ops.mesh has no attribute {}".format(operator.operator_name))
-        except TypeError:
-            raise TypeError("Incorrect operator parameters {}".format(operator.operator_parameters))
+        except TypeError as ex:
+            raise TypeError("Incorrect operator parameters {!r} raised {!r}".format(operator.operator_parameters, ex))
 
         if retval != {'FINISHED'}:
             raise RuntimeError("Unexpected operator return value: {}".format(retval))
@@ -511,8 +511,6 @@ class MeshTest:
         if isinstance(object_operations, OperatorSpecObjectMode):
             self._apply_operator_object_mode(object_operations)
 
-        print("NAME", list(test_object.modifiers))
-
         scene.frame_set(operation.frame_number)
 
         if self.apply_modifier:
@@ -566,37 +564,38 @@ class MeshTest:
                                         type(OperatorSpecObjectMode), type(ParticleSystemSpec), type(operation)))
 
         # Compare resulting mesh with expected one.
-        # Compare only when self.do_compare is set to True, it is set to False for run-test
-        if self.do_compare:
-            if self.verbose:
-                print("Comparing expected mesh with resulting mesh...")
-            evaluated_test_mesh = evaluated_test_object.data
-            expected_mesh = self.expected_object.data
-            if self.threshold:
-                compare_result = evaluated_test_mesh.unit_test_compare(mesh=expected_mesh, threshold=self.threshold)
-            else:
-                compare_result = evaluated_test_mesh.unit_test_compare(mesh=expected_mesh)
-            compare_success = (compare_result == 'Same')
+        # Compare only when self.do_compare is set to True, it is set to False for run-test and returns.
+        if not self.do_compare:
+            print("Meshes/objects are not compared, compare evaluated and expected object in Blender for "
+                  "visualization only.")
+            return False
 
-            # Also check if invalid geometry (which is never expected) had to be corrected...
-            validation_success = evaluated_test_mesh.validate(verbose=True) == False
+        if self.verbose:
+            print("Comparing expected mesh with resulting mesh...")
+        evaluated_test_mesh = evaluated_test_object.data
+        expected_mesh = self.expected_object.data
+        if self.threshold:
+            compare_result = evaluated_test_mesh.unit_test_compare(mesh=expected_mesh, threshold=self.threshold)
+        else:
+            compare_result = evaluated_test_mesh.unit_test_compare(mesh=expected_mesh)
+        compare_success = (compare_result == 'Same')
 
-            if compare_success and validation_success:
-                if self.verbose:
-                    print("Success!")
+        # Also check if invalid geometry (which is never expected) had to be corrected...
+        validation_success = evaluated_test_mesh.validate(verbose=True) == False
 
-                # Clean up.
-                if self.verbose:
-                    print("Cleaning up...")
-                # Delete evaluated_test_object.
-                bpy.ops.object.delete()
-                return True
+        if compare_success and validation_success:
+            if self.verbose:
+                print("Success!")
+
+            # Clean up.
+            if self.verbose:
+                print("Cleaning up...")
+            # Delete evaluated_test_object.
+            bpy.ops.object.delete()
+            return True
 
-            else:
-                return self._on_failed_test(compare_result, validation_success, evaluated_test_object)
         else:
-            print("Meshes/objects are not compared, compare evaluated and expected object in Blender for "
-                  "visualization.")
+            return self._on_failed_test(compare_result, validation_success

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list