From 921860ec28037616ecaae54da957d054b7b4a751 Mon Sep 17 00:00:00 2001 From: Miro Hrončok Date: Oct 27 2017 08:00:33 +0000 Subject: Add upstream commit to fix tests --- diff --git a/cura-fix-tests.patch b/cura-fix-tests.patch new file mode 100644 index 0000000..33bb1fe --- /dev/null +++ b/cura-fix-tests.patch @@ -0,0 +1,89 @@ +From 7d46eead606170b7fab9c1f1e51b10caf554adf1 Mon Sep 17 00:00:00 2001 +From: Lipu Fei +Date: Thu, 26 Oct 2017 12:49:41 +0200 +Subject: [PATCH] Fix broken unit tests due to evaluation context + +CURA-4498 +--- + tests/Settings/TestExtruderStack.py | 2 +- + tests/Settings/TestGlobalStack.py | 16 ++++++++-------- + 2 files changed, 9 insertions(+), 9 deletions(-) + +diff --git a/tests/Settings/TestExtruderStack.py b/tests/Settings/TestExtruderStack.py +index 66b4d51b04..6ed2c6649b 100644 +--- a/tests/Settings/TestExtruderStack.py ++++ b/tests/Settings/TestExtruderStack.py +@@ -251,7 +251,7 @@ def test_getPropertyFallThrough(extruder_stack): + for type_id, type_name in container_indices.IndexTypeMap.items(): + container = unittest.mock.MagicMock() + # Return type_id when asking for value and -1 when asking for limit_to_extruder +- container.getProperty = lambda key, property, type_id = type_id: type_id if (key == "layer_height" and property == "value") else (None if property != "limit_to_extruder" else "-1") #Returns the container type ID as layer height, in order to identify it. ++ container.getProperty = lambda key, property, context = None, type_id = type_id: type_id if (key == "layer_height" and property == "value") else (None if property != "limit_to_extruder" else "-1") #Returns the container type ID as layer height, in order to identify it. + container.hasProperty = lambda key, property: key == "layer_height" + container.getMetaDataEntry = unittest.mock.MagicMock(return_value = type_name) + mock_layer_heights[type_id] = container +diff --git a/tests/Settings/TestGlobalStack.py b/tests/Settings/TestGlobalStack.py +index 89dd76aec1..afd3d2b425 100755 +--- a/tests/Settings/TestGlobalStack.py ++++ b/tests/Settings/TestGlobalStack.py +@@ -63,7 +63,7 @@ def test_addContainer(global_stack): + ## Tests adding extruders to the global stack. + def test_addExtruder(global_stack): + mock_definition = unittest.mock.MagicMock() +- mock_definition.getProperty = lambda key, property: 2 if key == "machine_extruder_count" and property == "value" else None ++ mock_definition.getProperty = lambda key, property, context = None: 2 if key == "machine_extruder_count" and property == "value" else None + + with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): + global_stack.definition = mock_definition +@@ -318,7 +318,7 @@ def test_getPropertyFallThrough(global_stack): + container_indexes = cura.Settings.CuraContainerStack._ContainerIndexes #Cache. + for type_id, type_name in container_indexes.IndexTypeMap.items(): + container = unittest.mock.MagicMock() +- container.getProperty = lambda key, property, type_id = type_id: type_id if (key == "layer_height" and property == "value") else None #Returns the container type ID as layer height, in order to identify it. ++ container.getProperty = lambda key, property, context = None, type_id = type_id: type_id if (key == "layer_height" and property == "value") else None #Returns the container type ID as layer height, in order to identify it. + container.hasProperty = lambda key, property: key == "layer_height" + container.getMetaDataEntry = unittest.mock.MagicMock(return_value = type_name) + mock_layer_heights[type_id] = container +@@ -355,7 +355,7 @@ def test_getPropertyFallThrough(global_stack): + ## In definitions, test whether having no resolve allows us to find the value. + def test_getPropertyNoResolveInDefinition(global_stack): + value = unittest.mock.MagicMock() #Just sets the value for bed temperature. +- value.getProperty = lambda key, property: 10 if (key == "material_bed_temperature" and property == "value") else None ++ value.getProperty = lambda key, property, context = None: 10 if (key == "material_bed_temperature" and property == "value") else None + + with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): #To guard against the type checking. + global_stack.definition = value +@@ -365,7 +365,7 @@ def test_getPropertyNoResolveInDefinition(global_stack): + # must get the resolve first. + def test_getPropertyResolveInDefinition(global_stack): + resolve_and_value = unittest.mock.MagicMock() #Sets the resolve and value for bed temperature. +- resolve_and_value.getProperty = lambda key, property: (7.5 if property == "resolve" else 5) if (key == "material_bed_temperature" and property in ("resolve", "value")) else None #7.5 resolve, 5 value. ++ resolve_and_value.getProperty = lambda key, property, context = None: (7.5 if property == "resolve" else 5) if (key == "material_bed_temperature" and property in ("resolve", "value")) else None #7.5 resolve, 5 value. + + with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): #To guard against the type checking. + global_stack.definition = resolve_and_value +@@ -378,9 +378,9 @@ def test_getPropertyResolveInInstance(global_stack): + instance_containers = {} + for container_type in container_indices.IndexTypeMap: + instance_containers[container_type] = unittest.mock.MagicMock() #Sets the resolve and value for bed temperature. +- instance_containers[container_type].getProperty = lambda key, property: (7.5 if property == "resolve" else (InstanceState.User if property == "state" else (5 if property != "limit_to_extruder" else "-1"))) if (key == "material_bed_temperature") else None #7.5 resolve, 5 value. ++ instance_containers[container_type].getProperty = lambda key, property, context = None: (7.5 if property == "resolve" else (InstanceState.User if property == "state" else (5 if property != "limit_to_extruder" else "-1"))) if (key == "material_bed_temperature") else None #7.5 resolve, 5 value. + instance_containers[container_type].getMetaDataEntry = unittest.mock.MagicMock(return_value = container_indices.IndexTypeMap[container_type]) #Make queries for the type return the desired type. +- instance_containers[container_indices.Definition].getProperty = lambda key, property: 10 if (key == "material_bed_temperature" and property == "value") else None #Definition only has value. ++ instance_containers[container_indices.Definition].getProperty = lambda key, property, context = None: 10 if (key == "material_bed_temperature" and property == "value") else None #Definition only has value. + with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): #To guard against the type checking. + global_stack.definition = instance_containers[container_indices.Definition] #Stack must have a definition. + +@@ -402,10 +402,10 @@ def test_getPropertyResolveInInstance(global_stack): + # definitions. + def test_getPropertyInstancesBeforeResolve(global_stack): + value = unittest.mock.MagicMock() #Sets just the value. +- value.getProperty = lambda key, property: (10 if property == "value" else (InstanceState.User if property != "limit_to_extruder" else "-1")) if key == "material_bed_temperature" else None ++ value.getProperty = lambda key, property, context = None: (10 if property == "value" else (InstanceState.User if property != "limit_to_extruder" else "-1")) if key == "material_bed_temperature" else None + value.getMetaDataEntry = unittest.mock.MagicMock(return_value = "quality") + resolve = unittest.mock.MagicMock() #Sets just the resolve. +- resolve.getProperty = lambda key, property: 7.5 if (key == "material_bed_temperature" and property == "resolve") else None ++ resolve.getProperty = lambda key, property, context = None: 7.5 if (key == "material_bed_temperature" and property == "resolve") else None + + with unittest.mock.patch("cura.Settings.CuraContainerStack.DefinitionContainer", unittest.mock.MagicMock): #To guard against the type checking. + global_stack.definition = resolve diff --git a/cura.spec b/cura.spec index 2b5feef..e645b95 100644 --- a/cura.spec +++ b/cura.spec @@ -1,13 +1,16 @@ Name: cura Epoch: 1 Version: 3.0.3 -Release: 1%{?dist} +Release: 2%{?dist} Summary: 3D printer control software License: AGPLv3+ URL: https://ultimaker.com/en/products/cura-software Source0: https://github.com/Ultimaker/Cura/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz +# https://github.com/Ultimaker/Cura/issues/2664 +Patch0: %{name}-fix-tests.patch + BuildArch: noarch # There are Python plugins in /usr/lib/cura @@ -99,9 +102,7 @@ ln -s %{_datadir}/fonts/open-sans/ %{buildroot}%{_datadir}/%{name}/resources/the %check %{__python3} -m pip freeze -%{__python3} -m pytest -v \ - -k "not test_getPropertyFallThrough and not test_addExtruder and not test_getPropertyFallThrough and not test_getPropertyNoResolveInDefinition and not test_getPropertyResolveInDefinition and not test_getPropertyResolveInInstance and not test_getPropertyInstancesBeforeResolve" -# ^^^ https://github.com/Ultimaker/Cura/issues/2664 ^^^ +%{__python3} -m pytest -v desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop @@ -121,6 +122,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/%{name}.desktop %{_prefix}/lib/%{name} %changelog +* Fri Oct 27 2017 Miro Hrončok - 1:3.0.3-2 +- Add upstream commit to fix tests + * Mon Oct 23 2017 Miro Hrončok - 1:3.0.3-1 - Update to 3.0.3 - Remove locale and desktop file changes (fixed upstream)