diff --git a/tests/Settings/TestExtruderStack.py b/tests/Settings/TestExtruderStack.py index 5b50d03b2b..1d16823040 100644 --- a/tests/Settings/TestExtruderStack.py +++ b/tests/Settings/TestExtruderStack.py @@ -55,6 +55,27 @@ def test_addContainer(extruder_stack): with pytest.raises(InvalidOperationError): extruder_stack.addContainer(unittest.mock.MagicMock()) +@pytest.mark.parametrize("filename, material_id", [ + ("Left.extruder.cfg", "some_instance"), + ("ExtruderLegacy.stack.cfg", "some_instance"), + ("OnlyMaterial.extruder.cfg", "some_instance"), + ("OnlyDefinition.extruder.cfg", "empty"), + ("Complete.extruder.cfg", "some_material") +]) +def test_deserializeMaterial(filename, material_id, container_registry, extruder_stack): + serialized = readStack(filename) + + #Mock the loading of the instance containers. + extruder_stack.findContainer = findSomeContainers + original_container_registry = UM.Settings.ContainerStack._containerRegistry + UM.Settings.ContainerStack._containerRegistry = container_registry #Always has all profiles you ask of. + + extruder_stack.deserialize(serialized) + assert extruder_stack.material.getId() == material_id + + #Restore. + UM.Settings.ContainerStack._containerRegistry = original_container_registry + @pytest.mark.parametrize("filename, quality_id", [ ("Left.extruder.cfg", "empty"), ("ExtruderLegacy.stack.cfg", "empty"), diff --git a/tests/Settings/stacks/OnlyDefinition.extruder.cfg b/tests/Settings/stacks/OnlyDefinition.extruder.cfg new file mode 100644 index 0000000000..e58512b27f --- /dev/null +++ b/tests/Settings/stacks/OnlyDefinition.extruder.cfg @@ -0,0 +1,7 @@ +[general] +version = 3 +name = Only Definition +id = OnlyDefinition + +[containers] +5 = some_definition diff --git a/tests/Settings/stacks/OnlyMaterial.extruder.cfg b/tests/Settings/stacks/OnlyMaterial.extruder.cfg new file mode 100644 index 0000000000..49a9d12389 --- /dev/null +++ b/tests/Settings/stacks/OnlyMaterial.extruder.cfg @@ -0,0 +1,8 @@ +[general] +version = 3 +name = Only Material +id = OnlyMaterial + +[containers] +3 = some_instance +5 = some_definition