diff --git a/tests/TestMachineManager.py b/tests/TestMachineManager.py index 25e8035487..250f285e1f 100644 --- a/tests/TestMachineManager.py +++ b/tests/TestMachineManager.py @@ -9,7 +9,9 @@ from cura.Settings.MachineManager import MachineManager @pytest.fixture() def global_stack(): - return MagicMock(name="Global Stack") + stack = MagicMock(name="Global Stack") + stack.getId = MagicMock(return_value ="GlobalStack") + return stack @pytest.fixture() def container_registry() -> ContainerRegistry: @@ -102,16 +104,65 @@ def createMockedExtruder(extruder_id): return extruder -def createMockedMaterial(material_id): - material = MagicMock() - material.getId = MagicMock(return_value=material_id) - return material +def createMockedInstanceContainer(instance_id, name = ""): + instance = MagicMock() + instance.getName = MagicMock(return_value = name) + instance.getId = MagicMock(return_value=instance_id) + return instance def test_allActiveMaterialIds(machine_manager, extruder_manager): extruder_1 = createMockedExtruder("extruder_1") extruder_2 = createMockedExtruder("extruder_2") - extruder_1.material = createMockedMaterial("material_1") - extruder_2.material = createMockedMaterial("material_2") + extruder_1.material = createMockedInstanceContainer("material_1") + extruder_2.material = createMockedInstanceContainer("material_2") extruder_manager.getActiveExtruderStacks = MagicMock(return_value = [extruder_1, extruder_2]) assert machine_manager.allActiveMaterialIds == {"extruder_1": "material_1", "extruder_2": "material_2"} + + +def test_activeVariantNames(machine_manager, extruder_manager): + extruder_1 = createMockedExtruder("extruder_1") + extruder_2 = createMockedExtruder("extruder_2") + extruder_1.getMetaDataEntry = MagicMock(return_value = "0") + extruder_2.getMetaDataEntry = MagicMock(return_value= "2") + extruder_1.variant = createMockedInstanceContainer("variant_1", "variant_name_1") + extruder_2.variant = createMockedInstanceContainer("variant_2", "variant_name_2") + extruder_manager.getActiveExtruderStacks = MagicMock(return_value=[extruder_1, extruder_2]) + + assert machine_manager.activeVariantNames == {"0": "variant_name_1", "2": "variant_name_2"} + + +def test_globalVariantName(machine_manager, application): + global_stack = application.getGlobalContainerStack() + global_stack.variant = createMockedInstanceContainer("beep", "zomg") + assert machine_manager.globalVariantName == "zomg" + + +def test_activeMachineDefinitionName(machine_manager): + global_stack = machine_manager.activeMachine + global_stack.definition = createMockedInstanceContainer("beep", "zomg") + assert machine_manager.activeMachineDefinitionName == "zomg" + + +def test_activeMachineId(machine_manager): + assert machine_manager.activeMachineId == "GlobalStack" + + +def test_activeVariantBuildplateName(machine_manager): + global_stack = machine_manager.activeMachine + global_stack.variant = createMockedInstanceContainer("beep", "zomg") + assert machine_manager.activeVariantBuildplateName == "zomg" + + +def test_resetSettingForAllExtruders(machine_manager): + global_stack = machine_manager.activeMachine + extruder_1 = createMockedExtruder("extruder_1") + extruder_2 = createMockedExtruder("extruder_2") + extruder_1.userChanges = createMockedInstanceContainer("settings_1") + extruder_2.userChanges = createMockedInstanceContainer("settings_2") + global_stack.extruders = {"1": extruder_1, "2": extruder_2} + + machine_manager.resetSettingForAllExtruders("whatever") + + extruder_1.userChanges.removeInstance.assert_called_once_with("whatever") + extruder_2.userChanges.removeInstance.assert_called_once_with("whatever") \ No newline at end of file