diff --git a/cura/Settings/CuraStackBuilder.py b/cura/Settings/CuraStackBuilder.py index d20e686279..a14ae7c328 100644 --- a/cura/Settings/CuraStackBuilder.py +++ b/cura/Settings/CuraStackBuilder.py @@ -64,6 +64,7 @@ class CuraStackBuilder: # Create ExtruderStacks extruder_dict = machine_definition.getMetaDataEntry("machine_extruder_trains") + print(machine_definition, extruder_dict, machine_definition.getMetaDataEntry) for position in extruder_dict: cls.createExtruderStackWithDefaultSetup(new_global_stack, position) diff --git a/tests/Settings/TestCuraStackBuilder.py b/tests/Settings/TestCuraStackBuilder.py new file mode 100644 index 0000000000..9225c617cc --- /dev/null +++ b/tests/Settings/TestCuraStackBuilder.py @@ -0,0 +1,63 @@ +from unittest.mock import patch, MagicMock + +import pytest + +from UM.Settings.InstanceContainer import InstanceContainer +from cura.Settings.CuraStackBuilder import CuraStackBuilder + +@pytest.fixture +def global_variant(): + container = InstanceContainer(container_id="global_variant") + container.setMetaDataEntry("type", "variant") + + return container + +@pytest.fixture +def material_instance_container(): + container = InstanceContainer(container_id="material container") + container.setMetaDataEntry("type", "material") + + return container + +@pytest.fixture +def quality_container(): + container = InstanceContainer(container_id="quality container") + container.setMetaDataEntry("type", "quality") + + return container + + +@pytest.fixture +def quality_changes_container(): + container = InstanceContainer(container_id="quality changes container") + container.setMetaDataEntry("type", "quality_changes") + + return container + + +def test_createMachineWithUnknownDefinition(application, container_registry): + application.getContainerRegistry = MagicMock(return_value=container_registry) + with patch("cura.CuraApplication.CuraApplication.getInstance", MagicMock(return_value=application)): + with patch("UM.ConfigurationErrorMessage.ConfigurationErrorMessage.getInstance") as mocked_config_error: + assert CuraStackBuilder.createMachine("Whatever", "NOPE") is None + assert mocked_config_error.addFaultyContainers.called_with("NOPE") + + +'''def test_createMachine(application, container_registry, definition_container, global_variant, material_instance_container, quality_container, quality_changes_container): + variant_manager = MagicMock(name = "Variant Manager") + global_variant_node = MagicMock( name = "global variant node") + global_variant_node.getContainer = MagicMock(return_value = global_variant) + + variant_manager.getDefaultVariantNode = MagicMock(return_value = global_variant_node) + + application.getContainerRegistry = MagicMock(return_value=container_registry) + application.getVariantManager = MagicMock(return_value = variant_manager) + application.empty_material_container = material_instance_container + application.empty_quality_container = quality_container + application.empty_quality_changes_container = quality_changes_container + + definition_container.getMetaDataEntry = MagicMock(return_value = {}, name = "blarg") + print("DEF CONT", definition_container) + container_registry.addContainer(definition_container) + with patch("cura.CuraApplication.CuraApplication.getInstance", MagicMock(return_value=application)): + assert CuraStackBuilder.createMachine("Whatever", "Test Definition") is None'''