From 3f1f4a172d1dbfd0c2c6a6e2767d1261308aa0f0 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Tue, 28 Mar 2017 17:48:55 +0200 Subject: [PATCH] Fix constrainContainerTypes test We do not allow random containers to be assigned to specific properties, only the containers that specify they are of a certain type. --- tests/Settings/TestGlobalStack.py | 36 +++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/tests/Settings/TestGlobalStack.py b/tests/Settings/TestGlobalStack.py index 1d7bb0f65b..d8ad0bab53 100644 --- a/tests/Settings/TestGlobalStack.py +++ b/tests/Settings/TestGlobalStack.py @@ -129,24 +129,56 @@ def test_addExtruder(global_stack): (DefinitionContainerSubClass(), InstanceContainerSubClass()) ]) def test_constrainContainerTypes(definition_container, instance_container, global_stack): - with pytest.raises(InvalidContainerError): #Putting a definition container in the user changes is not allowed. + instance_container.addMetaDataEntry("type", "") + + with pytest.raises(InvalidContainerError): # Putting a definition container in the user changes is not allowed. global_stack.userChanges = definition_container - global_stack.userChanges = instance_container #Putting an instance container in the user changes is allowed. + with pytest.raises(InvalidContainerError): + global_stack.userChanges = instance_container # Putting a random instance container in the user changes is not allowed. + + instance_container.setMetaDataEntry("type", "user") # After setting the metadata type entry correctly, we are allowed to set the container + global_stack.userChanges = instance_container + with pytest.raises(InvalidContainerError): global_stack.qualityChanges = definition_container + with pytest.raises(InvalidContainerError): + global_stack.qualityChanges = instance_container + + instance_container.setMetaDataEntry("type", "quality_changes") global_stack.qualityChanges = instance_container + with pytest.raises(InvalidContainerError): global_stack.quality = definition_container + with pytest.raises(InvalidContainerError): + global_stack.quality = instance_container + + instance_container.setMetaDataEntry("type", "quality") global_stack.quality = instance_container + with pytest.raises(InvalidContainerError): global_stack.material = definition_container + with pytest.raises(InvalidContainerError): + global_stack.material = instance_container + + instance_container.setMetaDataEntry("type", "material") global_stack.material = instance_container + with pytest.raises(InvalidContainerError): global_stack.variant = definition_container + with pytest.raises(InvalidContainerError): + global_stack.variant = instance_container + + instance_container.setMetaDataEntry("type", "variant") global_stack.variant = instance_container + with pytest.raises(InvalidContainerError): global_stack.definitionChanges = definition_container + with pytest.raises(InvalidContainerError): + global_stack.definitionChanges = instance_container + + instance_container.setMetaDataEntry("type", "definition_changes") global_stack.definitionChanges = instance_container + with pytest.raises(InvalidContainerError): #Putting an instance container in the definition is not allowed. global_stack.definition = instance_container global_stack.definition = definition_container #Putting a definition container in the definition is allowed.