Added extra tests for materialManager

This commit is contained in:
Jaime van Kessel 2019-03-15 13:57:22 +01:00
parent f73dabdc3f
commit 1138baa26f
2 changed files with 28 additions and 4 deletions

View file

@ -219,7 +219,7 @@ class MaterialManager(QObject):
root_material_id = material_metadata["base_file"] root_material_id = material_metadata["base_file"]
definition = material_metadata["definition"] definition = material_metadata["definition"]
approximate_diameter = material_metadata["approximate_diameter"] approximate_diameter = str(material_metadata["approximate_diameter"])
if approximate_diameter not in self._diameter_machine_nozzle_buildplate_material_map: if approximate_diameter not in self._diameter_machine_nozzle_buildplate_material_map:
self._diameter_machine_nozzle_buildplate_material_map[approximate_diameter] = {} self._diameter_machine_nozzle_buildplate_material_map[approximate_diameter] = {}
@ -332,7 +332,6 @@ class MaterialManager(QObject):
buildplate_node = nozzle_node.getChildNode(buildplate_name) buildplate_node = nozzle_node.getChildNode(buildplate_name)
nodes_to_check = [buildplate_node, nozzle_node, machine_node, default_machine_node] nodes_to_check = [buildplate_node, nozzle_node, machine_node, default_machine_node]
# Fallback mechanism of finding materials: # Fallback mechanism of finding materials:
# 1. buildplate-specific material # 1. buildplate-specific material
# 2. nozzle-specific material # 2. nozzle-specific material

View file

@ -4,10 +4,16 @@ from cura.Machines.MaterialManager import MaterialManager
mocked_registry = MagicMock() mocked_registry = MagicMock()
material_1 = {"id": "test", "GUID":"TEST!", "base_file": "base_material", "definition": "fdmmachine", "approximate_diameter": 3} material_1 = {"id": "test", "GUID":"TEST!", "base_file": "base_material", "definition": "fdmmachine", "approximate_diameter": 3, "brand": "generic"}
material_2 = {"id": "base_material", "GUID":"TEST2!", "base_file": "test", "definition": "fdmmachine", "approximate_diameter": 3} material_2 = {"id": "base_material", "GUID": "TEST2!", "base_file": "test", "definition": "fdmmachine", "approximate_diameter": 3}
mocked_registry.findContainersMetadata = MagicMock(return_value = [material_1, material_2]) mocked_registry.findContainersMetadata = MagicMock(return_value = [material_1, material_2])
mocked_definition = MagicMock()
mocked_definition.getId = MagicMock(return_value = "fdmmachine")
mocked_definition.getMetaDataEntry = MagicMock(return_value = [])
def test_initialize(application): def test_initialize(application):
# Just test if the simple loading works # Just test if the simple loading works
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)): with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
@ -16,3 +22,22 @@ def test_initialize(application):
# Double check that we actually got some material nodes # Double check that we actually got some material nodes
assert manager.getMaterialGroup("base_material").name == "base_material" assert manager.getMaterialGroup("base_material").name == "base_material"
assert manager.getMaterialGroup("test").name == "test" assert manager.getMaterialGroup("test").name == "test"
def test_getAvailableMaterials(application):
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
manager = MaterialManager(mocked_registry)
manager.initialize()
available_materials = manager.getAvailableMaterials(mocked_definition, None, None, 3)
assert "base_material" in available_materials
assert "test" in available_materials
def test_getMaterialNode(application):
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
manager = MaterialManager(mocked_registry)
manager.initialize()
assert manager.getMaterialNode("fdmmachine", None, None, 3, "base_material").getMetaDataEntry("id") == "test"