Tests: Add multires reshape and delete higher tests

Pull Request: https://projects.blender.org/blender/blender/pulls/159453
This commit is contained in:
Sean Kim 2026-06-02 23:48:59 +02:00 • committed by Sean Kim
parent b751b3664f
commit 615bd0750d
3 changed files with 26 additions and 3 deletions

View file

@ -17,7 +17,7 @@ blender -b --factory-startup tests/files/modeling/modifiers/multires_modifier --
BASE_DIR = os.path.dirname(os.path.realpath(__file__))
sys.path.append(os.path.join(BASE_DIR, "..", ".."))
from modules.mesh_test import RunTest, ModifierSpec, SpecMeshTest, OperatorSpec
from modules.mesh_test import RunTest, ModifierSpec, SpecMeshTest, OperatorSpec, SelectObjectSpec
def main():
@ -52,6 +52,15 @@ def main():
OperatorSpec('OBJECT', 'object.multires_subdivide', {'modifier': 'multires', 'mode': 'LINEAR'}),
OperatorSpec('OBJECT', 'object.modifier_apply', {'modifier': 'multires'})
], apply_modifier=False),
SpecMeshTest("Reshape", "testReshapeSuzanne", "expectedReshapeSuzanne",
[
SelectObjectSpec("reshapeTargetSuzanne"),
OperatorSpec('OBJECT', 'object.multires_reshape', {'modifier': 'Multires'})
], apply_modifier=False),
SpecMeshTest("DeleteHigher", "testDeleteHigherSuzanne", "expectedDeleteHigherSuzanne",
[
OperatorSpec('OBJECT', 'object.multires_higher_levels_delete', {'modifier': 'Multires'})
], apply_modifier=False)
]
modifiers_test = RunTest(tests)

View file

@ -160,6 +160,14 @@ class OperatorSpec:
" with parameters: " + str(self.operator_parameters)
class SelectObjectSpec:
def __init__(self, object_name: str):
self.object_name = object_name
def __str__(self):
return "Selecting: " + self.object_name
class DeformModifierSpec:
"""
Holds a list of deform modifier and OperatorSpec.
@ -539,6 +547,9 @@ class SpecMeshTest(MeshTest):
elif isinstance(operation, OperatorSpec):
self._apply_operator(operation)
elif isinstance(operation, SelectObjectSpec):
self._select_other_object(operation)
elif isinstance(operation, DeformModifierSpec):
self._apply_deform_modifier(evaluated_test_object, operation)
@ -771,6 +782,9 @@ class SpecMeshTest(MeshTest):
if operator.mode != 'OBJECT':
bpy.ops.object.mode_set(mode='OBJECT')
def _select_other_object(self, operator: SelectObjectSpec):
bpy.data.objects[operator.object_name].select_set(True)
def _apply_deform_modifier(self, test_object, operation: DeformModifierSpec):
"""
arg: operation: DeformModifierSpec: the modifier spec