From 00412e905f10c289cfe051b531c618652b4ce2b7 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 10 Apr 2017 16:43:51 +0200 Subject: [PATCH] Add test for removing definitions from instance locations When deserialize finds a definition in an instance container spot it should replace it with an empty container. Contributes to issue CURA-3497. --- tests/Settings/TestGlobalStack.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/Settings/TestGlobalStack.py b/tests/Settings/TestGlobalStack.py index f8bbebe107..9665567698 100644 --- a/tests/Settings/TestGlobalStack.py +++ b/tests/Settings/TestGlobalStack.py @@ -313,6 +313,17 @@ def test_deserializeRemovesWrongInstanceContainer(global_stack): assert global_stack.quality == global_stack._empty_instance_container #Replaced with empty. +## Tests whether a container with the wrong class gets removed when +# deserialising. +def test_deserializeRemovesWrongContainerClass(global_stack): + global_stack._containers[cura.Settings.CuraContainerStack._ContainerIndexes.Quality] = DefinitionContainer(container_id = "wrong class") + global_stack._containers[cura.Settings.CuraContainerStack._ContainerIndexes.Definition] = DefinitionContainer(container_id = "some definition") + + with unittest.mock.patch("UM.Settings.ContainerStack.ContainerStack.deserialize", unittest.mock.MagicMock()): #Prevent calling super().deserialize. + global_stack.deserialize("") + + assert global_stack.quality == global_stack._empty_instance_container #Replaced with empty. + ## Tests whether the user changes are being read properly from a global stack. @pytest.mark.skip @pytest.mark.parametrize("filename, user_changes_id", [