mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-13 01:37:51 -06:00
Also add tests for the update of the objects mode
CURA-6283
This commit is contained in:
parent
6cc8b8c184
commit
66d8e41064
2 changed files with 57 additions and 1 deletions
|
@ -122,6 +122,7 @@ class ObjectsModel(ListModel):
|
||||||
for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): # type: ignore
|
for node in DepthFirstIterator(Application.getInstance().getController().getScene().getRoot()): # type: ignore
|
||||||
if not self._shouldNodeBeHandled(node):
|
if not self._shouldNodeBeHandled(node):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
is_group = bool(node.callDecoration("isGroup"))
|
is_group = bool(node.callDecoration("isGroup"))
|
||||||
|
|
||||||
force_rename = False
|
force_rename = False
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
import copy
|
||||||
from unittest.mock import patch, MagicMock
|
from unittest.mock import patch, MagicMock
|
||||||
|
|
||||||
from UM.Scene.GroupDecorator import GroupDecorator
|
from UM.Scene.GroupDecorator import GroupDecorator
|
||||||
|
@ -28,6 +28,14 @@ def slicable_scene_node():
|
||||||
node.addDecorator(SliceableObjectDecorator())
|
node.addDecorator(SliceableObjectDecorator())
|
||||||
return node
|
return node
|
||||||
|
|
||||||
|
@pytest.fixture()
|
||||||
|
def application_with_mocked_scene(application):
|
||||||
|
mocked_controller = MagicMock(name = "Controller")
|
||||||
|
mocked_scene = MagicMock(name = "Scene")
|
||||||
|
mocked_controller.getScene = MagicMock(return_value = mocked_scene)
|
||||||
|
application.getController = MagicMock(return_value = mocked_controller)
|
||||||
|
return application
|
||||||
|
|
||||||
|
|
||||||
def test_setActiveBuildPlate(objects_model):
|
def test_setActiveBuildPlate(objects_model):
|
||||||
objects_model._update = MagicMock()
|
objects_model._update = MagicMock()
|
||||||
|
@ -109,3 +117,50 @@ class Test_renameNodes:
|
||||||
result = objects_model._renameNodes({"zomg": _NodeInfo(nodes_to_rename=[group_scene_node], is_group=True)})
|
result = objects_model._renameNodes({"zomg": _NodeInfo(nodes_to_rename=[group_scene_node], is_group=True)})
|
||||||
assert result == [group_scene_node]
|
assert result == [group_scene_node]
|
||||||
assert group_scene_node.getName() == "zomg#1"
|
assert group_scene_node.getName() == "zomg#1"
|
||||||
|
|
||||||
|
|
||||||
|
class Test_Update:
|
||||||
|
def test_updateWithGroup(self, objects_model, application_with_mocked_scene, group_scene_node):
|
||||||
|
objects_model._shouldNodeBeHandled = MagicMock(return_value = True)
|
||||||
|
application_with_mocked_scene.getController().getScene().getRoot = MagicMock(return_value = group_scene_node)
|
||||||
|
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application_with_mocked_scene)):
|
||||||
|
objects_model._update()
|
||||||
|
assert objects_model.items == [{'name': 'Group #1', 'selected': False, 'outside_build_area': False, 'buildplate_number': None, 'node': group_scene_node}]
|
||||||
|
|
||||||
|
def test_updateWithNonGroup(self, objects_model, application_with_mocked_scene, slicable_scene_node):
|
||||||
|
objects_model._shouldNodeBeHandled = MagicMock(return_value=True)
|
||||||
|
slicable_scene_node.setName("YAY(1)")
|
||||||
|
application_with_mocked_scene.getController().getScene().getRoot = MagicMock(return_value=slicable_scene_node)
|
||||||
|
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application_with_mocked_scene)):
|
||||||
|
objects_model._update()
|
||||||
|
assert objects_model.items == [{'name': 'YAY(1)', 'selected': False, 'outside_build_area': False, 'buildplate_number': None, 'node': slicable_scene_node}]
|
||||||
|
|
||||||
|
def test_updateWithNonTwoNodes(self, objects_model, application_with_mocked_scene, slicable_scene_node):
|
||||||
|
objects_model._shouldNodeBeHandled = MagicMock(return_value=True)
|
||||||
|
slicable_scene_node.setName("YAY")
|
||||||
|
copied_node = copy.deepcopy(slicable_scene_node)
|
||||||
|
copied_node.setParent(slicable_scene_node)
|
||||||
|
application_with_mocked_scene.getController().getScene().getRoot = MagicMock(return_value=slicable_scene_node)
|
||||||
|
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application_with_mocked_scene)):
|
||||||
|
objects_model._update()
|
||||||
|
assert objects_model.items == [{'name': 'YAY', 'selected': False, 'outside_build_area': False, 'buildplate_number': None, 'node': slicable_scene_node}, {'name': 'YAY(1)', 'selected': False, 'outside_build_area': False, 'buildplate_number': None, 'node': copied_node}]
|
||||||
|
|
||||||
|
def test_updateWithNonTwoGroups(self, objects_model, application_with_mocked_scene, group_scene_node):
|
||||||
|
objects_model._shouldNodeBeHandled = MagicMock(return_value=True)
|
||||||
|
group_scene_node.setName("Group #1")
|
||||||
|
copied_node = copy.deepcopy(group_scene_node)
|
||||||
|
copied_node.setParent(group_scene_node)
|
||||||
|
application_with_mocked_scene.getController().getScene().getRoot = MagicMock(return_value=group_scene_node)
|
||||||
|
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application_with_mocked_scene)):
|
||||||
|
objects_model._update()
|
||||||
|
assert objects_model.items == [{'name': 'Group #1', 'selected': False, 'outside_build_area': False, 'buildplate_number': None, 'node': group_scene_node}, {'name': 'Group #2', 'selected': False, 'outside_build_area': False, 'buildplate_number': None, 'node': copied_node}]
|
||||||
|
|
||||||
|
def test_updateOutsideBuildplate(self, objects_model, application_with_mocked_scene, group_scene_node):
|
||||||
|
objects_model._shouldNodeBeHandled = MagicMock(return_value=True)
|
||||||
|
group_scene_node.setName("Group")
|
||||||
|
group_scene_node.isOutsideBuildArea = MagicMock(return_value = True)
|
||||||
|
application_with_mocked_scene.getController().getScene().getRoot = MagicMock(return_value=group_scene_node)
|
||||||
|
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application_with_mocked_scene)):
|
||||||
|
objects_model._update()
|
||||||
|
assert objects_model.items == [{'name': 'Group #1', 'selected': False, 'outside_build_area': True, 'buildplate_number': None, 'node': group_scene_node}]
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue