mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-25 15:44:04 -06:00
Split out updating the machine size properties so it can be tested easily
This commit is contained in:
parent
2f83fa1a42
commit
3967c995f1
2 changed files with 38 additions and 5 deletions
|
@ -651,14 +651,10 @@ class BuildVolume(SceneNode):
|
||||||
self._height = self._global_container_stack.getProperty("machine_height", "value")
|
self._height = self._global_container_stack.getProperty("machine_height", "value")
|
||||||
self._build_volume_message.hide()
|
self._build_volume_message.hide()
|
||||||
update_disallowed_areas = True
|
update_disallowed_areas = True
|
||||||
rebuild_me = True
|
|
||||||
|
|
||||||
# sometimes the machine size or shape settings are adjusted on the active machine, we should reflect this
|
# sometimes the machine size or shape settings are adjusted on the active machine, we should reflect this
|
||||||
if setting_key in self._machine_settings:
|
if setting_key in self._machine_settings:
|
||||||
self._height = self._global_container_stack.getProperty("machine_height", "value")
|
self._updateMachineSizeProperties()
|
||||||
self._width = self._global_container_stack.getProperty("machine_width", "value")
|
|
||||||
self._depth = self._global_container_stack.getProperty("machine_depth", "value")
|
|
||||||
self._shape = self._global_container_stack.getProperty("machine_shape", "value")
|
|
||||||
update_extra_z_clearance = True
|
update_extra_z_clearance = True
|
||||||
update_disallowed_areas = True
|
update_disallowed_areas = True
|
||||||
|
|
||||||
|
@ -703,6 +699,14 @@ class BuildVolume(SceneNode):
|
||||||
def hasErrors(self) -> bool:
|
def hasErrors(self) -> bool:
|
||||||
return self._has_errors
|
return self._has_errors
|
||||||
|
|
||||||
|
def _updateMachineSizeProperties(self) -> None:
|
||||||
|
if not self._global_container_stack:
|
||||||
|
return
|
||||||
|
self._height = self._global_container_stack.getProperty("machine_height", "value")
|
||||||
|
self._width = self._global_container_stack.getProperty("machine_width", "value")
|
||||||
|
self._depth = self._global_container_stack.getProperty("machine_depth", "value")
|
||||||
|
self._shape = self._global_container_stack.getProperty("machine_shape", "value")
|
||||||
|
|
||||||
## Calls _updateDisallowedAreas and makes sure the changes appear in the
|
## Calls _updateDisallowedAreas and makes sure the changes appear in the
|
||||||
# scene.
|
# scene.
|
||||||
#
|
#
|
||||||
|
|
|
@ -201,3 +201,32 @@ class TestRebuild:
|
||||||
build_volume.rebuild()
|
build_volume.rebuild()
|
||||||
assert build_volume.getMeshData() is None
|
assert build_volume.getMeshData() is None
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class TestUpdateMachineSizeProperties:
|
||||||
|
setting_property_dict = {"machine_width": {"value": 50},
|
||||||
|
"machine_depth": {"value": 100},
|
||||||
|
"machine_height": {"value": 200},
|
||||||
|
"machine_shape": {"value": "DERP!"}}
|
||||||
|
|
||||||
|
def getPropertySideEffect(*args, **kwargs):
|
||||||
|
properties = TestUpdateMachineSizeProperties.setting_property_dict.get(args[1])
|
||||||
|
if properties:
|
||||||
|
return properties.get(args[2])
|
||||||
|
|
||||||
|
def test_noGlobalStack(self, build_volume: BuildVolume):
|
||||||
|
build_volume._updateMachineSizeProperties()
|
||||||
|
assert build_volume._width == 0
|
||||||
|
assert build_volume._height == 0
|
||||||
|
assert build_volume._depth == 0
|
||||||
|
assert build_volume._shape == ""
|
||||||
|
|
||||||
|
def test_happy(self, build_volume: BuildVolume):
|
||||||
|
mocked_global_stack = MagicMock(name="mocked_global_stack")
|
||||||
|
mocked_global_stack.getProperty = MagicMock(side_effect=self.getPropertySideEffect)
|
||||||
|
build_volume._global_container_stack = mocked_global_stack
|
||||||
|
build_volume._updateMachineSizeProperties()
|
||||||
|
assert build_volume._width == 50
|
||||||
|
assert build_volume._height == 200
|
||||||
|
assert build_volume._depth == 100
|
||||||
|
assert build_volume._shape == "DERP!"
|
Loading…
Add table
Add a link
Reference in a new issue