Add test for instance containers on definition spot

When deserialize finds an instance container in the definition spot and no other container to replace it with, it should raise an exception because stacks must have a definition.

Contributes to issue CURA-3497.
This commit is contained in:
Ghostkeeper 2017-04-10 16:45:42 +02:00
parent 00412e905f
commit 5e9695773a
No known key found for this signature in database
GPG Key ID: C5F96EE2BC0F7E75

View File

@ -324,6 +324,13 @@ def test_deserializeRemovesWrongContainerClass(global_stack):
assert global_stack.quality == global_stack._empty_instance_container #Replaced with empty.
def test_deserializeWrongDefinitionClass(global_stack):
global_stack._containers[cura.Settings.CuraContainerStack._ContainerIndexes.Definition] = getInstanceContainer(container_type = "definition") #Correct type but wrong class.
with unittest.mock.patch("UM.Settings.ContainerStack.ContainerStack.deserialize", unittest.mock.MagicMock()): #Prevent calling super().deserialize.
with pytest.raises(UM.Settings.ContainerStack.InvalidContainerStackError): #Must raise an error that there is no definition container.
global_stack.deserialize("")
## Tests whether the user changes are being read properly from a global stack.
@pytest.mark.skip
@pytest.mark.parametrize("filename, user_changes_id", [