def test_unknownAdhesion(self, build_volume: BuildVolume): build_volume._global_container_stack = self.createMockedStack() with patch( "cura.Settings.ExtruderManager.ExtruderManager.getInstance"): #with pytest.raises(Exception): # Since we don't have any adhesion set, this should break. build_volume.getEdgeDisallowedSize()
def test_noExtruders(self, build_volume: BuildVolume): mocked_stack = MagicMock() mocked_stack.getProperty = MagicMock( side_effect=self.getPropertySideEffect) build_volume._global_container_stack = mocked_stack # No extruders, so still expect that we get no area assert build_volume._computeDisallowedAreasPrimeBlob(12, []) == {}
def test_computeDisallowedAreasStaticNoExtruder(self, build_volume: BuildVolume): mocked_stack = MagicMock() mocked_stack.getProperty = MagicMock( side_effect=self.getPropertySideEffect) build_volume._global_container_stack = mocked_stack assert build_volume._computeDisallowedAreasStatic(0, []) == {}
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!"
def test_oneAtATime(self, build_volume: BuildVolume): build_volume._global_container_stack = self.createMockedStack() with patch( "cura.Settings.ExtruderManager.ExtruderManager.getInstance"): with patch.dict(self.setting_property_dict, {"print_sequence": { "value": "one_at_a_time" }}): assert build_volume.getEdgeDisallowedSize() == 0.1
def test_withRetractionHop(self, build_volume: BuildVolume): mocked_global_stack = MagicMock(name="mocked_global_stack") mocked_extruder = MagicMock() mocked_extruder.getProperty = MagicMock(side_effect=self.getPropertySideEffect) build_volume._global_container_stack = mocked_global_stack # It should be 12 because we have the hop enabled and the hop distance is set to 12 assert build_volume._calculateExtraZClearance([mocked_extruder]) == 12
def test_adhesionIsNotRaft(self, build_volume: BuildVolume): patched_dictionary = self.setting_property_dict.copy() patched_dictionary["adhesion_type"] = {"value": "not_raft"} mocked_global_stack = self.createMockedStack() build_volume._global_container_stack = mocked_global_stack assert build_volume.getRaftThickness() == 0 with patch.dict(self.setting_property_dict, patched_dictionary): build_volume._updateRaftThickness() assert build_volume.getRaftThickness() == 0
def test_computeDisalowedAreasStaticSingleExtruder(self, build_volume: BuildVolume): mocked_stack = MagicMock() mocked_stack.getProperty = MagicMock(side_effect=self.getPropertySideEffect) mocked_extruder = MagicMock() mocked_extruder.getProperty = MagicMock(side_effect=self.getPropertySideEffect) mocked_extruder.getId = MagicMock(return_value = "zomg") build_volume._global_container_stack = mocked_stack with patch("cura.Settings.ExtruderManager.ExtruderManager.getInstance"): result = build_volume._computeDisallowedAreasStatic(0, [mocked_extruder]) assert result == {"zomg": [Polygon([[-84.0, 102.5], [-115.0, 102.5], [-200.0, 112.5], [-82.0, 112.5]])]}
def test_withoutRetractionHop(self, build_volume: BuildVolume): mocked_global_stack = MagicMock(name="mocked_global_stack") mocked_extruder = MagicMock() mocked_extruder.getProperty = MagicMock(side_effect=self.getPropertySideEffect) build_volume._global_container_stack = mocked_global_stack patched_dictionary = self.setting_property_dict.copy() patched_dictionary["retraction_hop_enabled"] = {"value": False} with patch.dict(self.setting_property_dict, patched_dictionary): # It should be 12 because we have the hop enabled and the hop distance is set to 12 assert build_volume._calculateExtraZClearance([mocked_extruder]) == 0
def test_singleExtruder(self, build_volume: BuildVolume, setting_dict, result): self.createAndSetGlobalStack(build_volume) patched_dictionary = self.setting_property_dict.copy() patched_dictionary.update(setting_dict) with patch.dict(self.setting_property_dict, patched_dictionary): assert build_volume._calculateBedAdhesionSize([]) == result
def test_singleExtruder(self, build_volume: BuildVolume): mocked_global_stack = MagicMock(name = "mocked_global_stack") mocked_global_stack.getProperty = MagicMock(side_effect=self.getPropertySideEffect) mocked_extruder_stack = MagicMock(name = "mocked_extruder_stack") mocked_extruder_stack.getId = MagicMock(return_value = "0") mocked_extruder_stack.getProperty = MagicMock(side_effect=self.getPropertySideEffect) build_volume._global_container_stack = mocked_global_stack # Create a polygon that should be the result resulting_polygon = Polygon.approximatedCircle(PRIME_CLEARANCE) # Since we want a blob of size 12; resulting_polygon = resulting_polygon.getMinkowskiHull(Polygon.approximatedCircle(12)) # In the The translation result is 25, -50 (due to the settings used) resulting_polygon = resulting_polygon.translate(25, -50) assert build_volume._computeDisallowedAreasPrimeBlob(12, [mocked_extruder_stack]) == {"0": [resulting_polygon]}
def test_singleExtruder(self, build_volume: BuildVolume, setting_dict, result): self.createAndSetGlobalStack(build_volume) patched_dictionary = self.setting_property_dict.copy() patched_dictionary.update(setting_dict) patched_dictionary.update({ "skirt_brim_extruder_nr": {"value": 0}, "raft_base_extruder_nr": {"value": 0}, "raft_interface_extruder_nr": {"value": 0}, "raft_surface_extruder_nr": {"value": 0} }) with patch.dict(self.setting_property_dict, patched_dictionary): assert build_volume._calculateBedAdhesionSize([]) == result
def test_simple(self, build_volume: BuildVolume): build_volume.raftThicknessChanged = MagicMock() mocked_global_stack = self.createMockedStack() build_volume._global_container_stack = mocked_global_stack assert build_volume.getRaftThickness() == 0 build_volume._updateRaftThickness() assert build_volume.getRaftThickness() == 3 assert build_volume.raftThicknessChanged.emit.call_count == 1
def test_simple(self, build_volume: BuildVolume): build_volume.raftThicknessChanged = MagicMock() mocked_global_stack = self.createMockedStack() build_volume._global_container_stack = mocked_global_stack assert build_volume.getRaftThickness() == 0 build_volume._updateRaftThickness() assert build_volume.getRaftThickness( ) == 6 # 1 base layer of 1mm, 2 interface layers of 1mm each, 3 surface layer of 1mm. assert build_volume.raftThicknessChanged.emit.call_count == 1
def build_volume() -> BuildVolume: mocked_application = MagicMock() mocked_platform = MagicMock(name="platform") with patch("cura.BuildVolume.Platform", mocked_platform): return BuildVolume(mocked_application)
def test_noGlobalContainer(self, build_volume: BuildVolume): assert build_volume.getEdgeDisallowedSize() == 0
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_updateBoundingBox(self, build_volume: BuildVolume): build_volume.setWidth(10) build_volume.setHeight(10) build_volume.setDepth(10) mocked_global_stack = MagicMock() mocked_global_stack.getProperty = MagicMock( side_effect=self.getPropertySideEffect) build_volume._global_container_stack = mocked_global_stack build_volume.getEdgeDisallowedSize = MagicMock(return_value=0) build_volume.updateNodeBoundaryCheck = MagicMock() # Fake the the "engine is created callback" build_volume._onEngineCreated() build_volume.rebuild() bounding_box = build_volume.getBoundingBox() assert bounding_box.minimum == Vector(-5.0, -1.0, -5.0) assert bounding_box.maximum == Vector(5.0, 10.0, 5.0)
def test_noGlobalStack(self, build_volume: BuildVolume): build_volume.setWidth(10) build_volume.setHeight(10) build_volume.setDepth(10) # Fake the the "engine is created callback" build_volume._onEngineCreated() build_volume.rebuild() assert build_volume.getMeshData() is None
def test_engineIsNotRead(self, build_volume: BuildVolume): build_volume.setWidth(10) build_volume.setHeight(10) build_volume.setDepth(10) build_volume.rebuild() assert build_volume.getMeshData() is None
def test_zeroWidthHeightDepth(self, build_volume: BuildVolume): build_volume.rebuild() assert build_volume.getMeshData() is None
def test_noContainerStack(self, build_volume: BuildVolume): assert build_volume._calculateExtraZClearance([]) == 0
def test_noGlobalContainer(self, build_volume: BuildVolume): # No global container and no extruders, so we expect no blob areas assert build_volume._computeDisallowedAreasPrimeBlob(12, []) == {}
def test_noGlobalStack(self, build_volume: BuildVolume): build_volume.raftThicknessChanged = MagicMock() assert build_volume.getRaftThickness() == 0 build_volume._updateRaftThickness() assert build_volume.getRaftThickness() == 0 assert build_volume.raftThicknessChanged.emit.call_count == 0
def test_noGlobalStack(self, build_volume: BuildVolume): assert build_volume._calculateBedAdhesionSize([]) is None