Browse Source

Add tests for deserialising extruders with definitions

All extruders have definitions, but this one specifically tests whether the ID is correct.

Contributes to issue CURA-3497.
Ghostkeeper 8 years ago
parent
commit
e09f41e485
1 changed files with 20 additions and 0 deletions
  1. 20 0
      tests/Settings/TestExtruderStack.py

+ 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,                     definition_id", [
+                        ("Left.extruder.cfg",           "empty"),
+                        ("ExtruderLegacy.stack.cfg",    "empty"),
+                        ("OnlyDefinition.extruder.cfg", "empty"),
+                        ("Complete.extruder.cfg",       "some_definition")
+])
+def test_deserializeDefinition(filename, definition_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.definition.getId() == definition_id
+
+    #Restore.
+    UM.Settings.ContainerStack._containerRegistry = original_container_registry
+
 @pytest.mark.parametrize("filename,                   material_id", [
                         ("Left.extruder.cfg",         "some_instance"),
                         ("ExtruderLegacy.stack.cfg",  "some_instance"),