Browse Source

Added extra tests for materialManager

Jaime van Kessel 6 years ago
parent
commit
1138baa26f
2 changed files with 28 additions and 4 deletions
  1. 1 2
      cura/Machines/MaterialManager.py
  2. 27 2
      tests/TestMaterialManager.py

+ 1 - 2
cura/Machines/MaterialManager.py

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

+ 27 - 2
tests/TestMaterialManager.py

@@ -4,10 +4,16 @@ from cura.Machines.MaterialManager import MaterialManager
 
 
 mocked_registry = MagicMock()
-material_1 = {"id": "test", "GUID":"TEST!", "base_file": "base_material", "definition": "fdmmachine", "approximate_diameter": 3}
-material_2 = {"id": "base_material", "GUID":"TEST2!", "base_file": "test", "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}
 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):
     # Just test if the simple loading works
     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
     assert manager.getMaterialGroup("base_material").name == "base_material"
     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"