Browse Source

Add tests for deserialising extruders with quality changes

Contributes to issue CURA-3497.
Ghostkeeper 8 years ago
parent
commit
71a946d1b9

+ 20 - 0
tests/Settings/TestExtruderStack.py

@@ -55,6 +55,26 @@ def test_addContainer(extruder_stack):
     with pytest.raises(InvalidOperationError):
         extruder_stack.addContainer(unittest.mock.MagicMock())
 
+@pytest.mark.parametrize("filename,                         quality_changes_id", [
+                        ("Left.extruder.cfg",               "empty"),
+                        ("ExtruderLegacy.stack.cfg",        "empty"),
+                        ("OnlyQualityChanges.extruder.cfg", "some_instance"),
+                        ("Complete.extruder.cfg",           "some_quality_changes")
+])
+def test_deserializeQualityChanges(filename, quality_changes_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.qualityChanges.getId() == quality_changes_id
+
+    #Restore.
+    UM.Settings.ContainerStack._containerRegistry = original_container_registry
+
 @pytest.mark.parametrize("filename,                  user_changes_id", [
                         ("Left.extruder.cfg",        "empty"),
                         ("ExtruderLegacy.stack.cfg", "empty"),

+ 8 - 0
tests/Settings/stacks/OnlyQualityChanges.extruder.cfg

@@ -0,0 +1,8 @@
+[general]
+version = 3
+name = Only Quality Changes
+id = OnlyQualityChanges
+
+[containers]
+1 = some_instance
+5 = some_definition