diff --git a/tests/Settings/TestGlobalStack.py b/tests/Settings/TestGlobalStack.py index 87651086be..a1242bc61d 100644 --- a/tests/Settings/TestGlobalStack.py +++ b/tests/Settings/TestGlobalStack.py @@ -100,4 +100,26 @@ def test_deserializeQuality(filename, quality_id, container_registry): stack.deserialize(serialized) - assert stack.quality.getId() == quality_id \ No newline at end of file + assert stack.quality.getId() == quality_id + +## Tests whether the material profile is being read properly from a global +# stack. +@pytest.mark.parametrize("filename, material_id", [ + ("Global.global.cfg", "some_instance"), + ("Global.stack.cfg", "some_instance"), + ("MachineLegacy.stack.cfg", "some_instance"), + ("OnlyDefinition.global.cfg", "empty"), + ("OnlyMaterial.global.cfg", "some_instance"), + ("Complete.global.cfg", "some_material") +]) +def test_deserializeMaterial(filename, material_id, container_registry): + serialized = readStack(filename) + stack = cura.Settings.GlobalStack.GlobalStack("TestStack") + + #Mock the loading of the instance containers. + stack.findContainer = findSomeContainers + UM.Settings.ContainerStack._containerRegistry = container_registry #Always has all the profiles you ask of. + + stack.deserialize(serialized) + + assert stack.material.getId() == material_id \ No newline at end of file diff --git a/tests/Settings/stacks/OnlyDefinition.global.cfg b/tests/Settings/stacks/OnlyDefinition.global.cfg new file mode 100644 index 0000000000..9534353ed5 --- /dev/null +++ b/tests/Settings/stacks/OnlyDefinition.global.cfg @@ -0,0 +1,7 @@ +[general] +version = 3 +name = Only Definition +id = OnlyDefinition + +[containers] +6 = some_definition diff --git a/tests/Settings/stacks/OnlyMaterial.global.cfg b/tests/Settings/stacks/OnlyMaterial.global.cfg new file mode 100644 index 0000000000..715651a9b9 --- /dev/null +++ b/tests/Settings/stacks/OnlyMaterial.global.cfg @@ -0,0 +1,8 @@ +[general] +version = 3 +name = Only Material +id = OnlyMaterial + +[containers] +3 = some_instance +6 = some_definition