diff --git a/cura/Machines/QualityManager.py b/cura/Machines/QualityManager.py index 34cc9ce4b2..b849b16169 100644 --- a/cura/Machines/QualityManager.py +++ b/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 diff --git a/tests/TestQualityManager.py b/tests/TestQualityManager.py new file mode 100644 index 0000000000..50318260b2 --- /dev/null +++ b/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)