From a2b0b1076ac42c6041aef3ceb1a73a91a919324e Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Fri, 12 May 2017 16:28:31 +0200 Subject: [PATCH] Add test for when setting_version doesn't match its definition Contributes to issue CURA-3427. --- tests/Settings/TestCuraContainerRegistry.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tests/Settings/TestCuraContainerRegistry.py b/tests/Settings/TestCuraContainerRegistry.py index befdcd5fe4..14ea9ea528 100644 --- a/tests/Settings/TestCuraContainerRegistry.py +++ b/tests/Settings/TestCuraContainerRegistry.py @@ -94,6 +94,21 @@ def test_addContainerNoSettingVersion(container_registry): mock_super_add_container.assert_not_called() #Should not get passed on to UM.Settings.ContainerRegistry.addContainer, because the setting_version is interpreted as 0! +def test_addContainerBadSettingVersion(container_registry): + definition = DefinitionContainer(container_id = "Test Definition") + definition.getMetaData()["setting_version"] = 3 + container_registry.addContainer(definition) + + instance = UM.Settings.InstanceContainer.InstanceContainer(container_id = "Test Instance") + instance.addMetaDataEntry("setting_version", 9001) #Wrong version! + instance.setDefinition(definition) + + mock_super_add_container = unittest.mock.MagicMock() #Take the role of the Uranium-ContainerRegistry where the resulting container should not get registered. + with unittest.mock.patch("UM.Settings.ContainerRegistry.ContainerRegistry.addContainer", mock_super_add_container): + container_registry.addContainer(instance) + + mock_super_add_container.assert_not_called() #Should not get passed on to UM.Settings.ContainerRegistry.addContainer, because the setting_version doesn't match its definition! + ## Tests whether loading gives objects of the correct type. @pytest.mark.parametrize("filename, output_class", [ ("ExtruderLegacy.stack.cfg", ExtruderStack),