Browse Source

Adds tests for QualityManager

Jaime van Kessel 6 years ago
parent
commit
8518aba3a5
2 changed files with 61 additions and 0 deletions
  1. 1 0
      cura/Machines/QualityManager.py
  2. 60 0
      tests/TestQualityManager.py

+ 1 - 0
cura/Machines/QualityManager.py

@@ -209,6 +209,7 @@ class QualityManager(QObject):
         #   (1) the machine-specific node
         #   (2) the generic node
         machine_node = self._machine_nozzle_buildplate_material_quality_type_to_quality_dict.get(machine_definition_id)
+
         # Check if this machine has specific quality profiles for its extruders, if so, when looking up extruder
         # qualities, we should not fall back to use the global qualities.
         has_extruder_specific_qualities = False

+ 60 - 0
tests/TestQualityManager.py

@@ -0,0 +1,60 @@
+from unittest.mock import MagicMock
+
+import pytest
+
+from cura.Machines.QualityManager import QualityManager
+
+
+
+mocked_stack = MagicMock()
+mocked_extruder = MagicMock()
+
+mocked_material = MagicMock()
+mocked_material.getMetaDataEntry = MagicMock(return_value = "base_material")
+
+mocked_extruder.material = mocked_material
+mocked_stack.extruders = {"0": mocked_extruder}
+
+@pytest.fixture()
+def material_manager():
+    result = MagicMock()
+    result.getRootMaterialIDWithoutDiameter = MagicMock(return_value = "base_material")
+    return result
+
+@pytest.fixture()
+def container_registry():
+    result = MagicMock()
+    mocked_metadata = [{"id": "test", "definition": "fdmprinter", "quality_type": "normal", "name": "test_name", "global_quality": True, "type": "quality"},
+                       {"id": "test_material", "definition": "fdmprinter", "quality_type": "normal", "name": "test_name_material", "material": "base_material", "type": "quality"},
+                       {"id": "quality_changes_id", "definition": "fdmprinter", "type": "quality_changes", "quality_type": "amazing!", "name": "herp"}]
+    result.findContainersMetadata = MagicMock(return_value = mocked_metadata)
+    return result
+
+
+@pytest.fixture()
+def quality_mocked_application(material_manager, container_registry):
+    result = MagicMock()
+    result.getMaterialManager = MagicMock(return_value=material_manager)
+    result.getContainerRegistry = MagicMock(return_value=container_registry)
+    return result
+
+
+def test_getQualityGroups(quality_mocked_application):
+    manager = QualityManager(quality_mocked_application)
+    manager.initialize()
+
+    assert "normal" in manager.getQualityGroups(mocked_stack)
+
+
+def test_getQualityGroupsForMachineDefinition(quality_mocked_application):
+    manager = QualityManager(quality_mocked_application)
+    manager.initialize()
+
+    assert "normal" in manager.getQualityGroupsForMachineDefinition(mocked_stack)
+
+
+def test_getQualityChangesGroup(quality_mocked_application):
+    manager = QualityManager(quality_mocked_application)
+    manager.initialize()
+
+    assert "herp" in manager.getQualityChangesGroups(mocked_stack)