From 7913ff9bf262c3ffadbc42188427431c530588fc Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 24 Mar 2017 17:35:31 +0100 Subject: [PATCH] Add test for deserializing with a missing container A container is missing in the registry, so it should raise an exception. Contributes to issue CURA-3497. --- tests/Settings/TestExtruderStack.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tests/Settings/TestExtruderStack.py b/tests/Settings/TestExtruderStack.py index 94755eaf6b..1e54c7251e 100644 --- a/tests/Settings/TestExtruderStack.py +++ b/tests/Settings/TestExtruderStack.py @@ -135,6 +135,19 @@ def test_deserializeMaterial(filename, material_id, container_registry, extruder #Restore. UM.Settings.ContainerStack._containerRegistry = original_container_registry +## Tests that when an extruder is loaded with an unknown instance, it raises an +# exception. +def test_deserializeMissingContainer(extruder_stack): + serialized = readStack("Left.extruder.cfg") + with pytest.raises(Exception): + extruder_stack.deserialize(serialized) + try: + extruder_stack.deserialize(serialized) + except Exception as e: + #Must be exactly Exception, not one of its subclasses, since that is what gets raised when a stack has an unknown container. + #That's why we can't use pytest.raises. + assert type(e) == Exception + ## Tests whether qualities are being read properly from an extruder stack. @pytest.mark.parametrize("filename, quality_id", [ ("Left.extruder.cfg", "empty"),