Merge branch 'feature_intent' into feature_intent_container_tree

Conflicts:
	.gitlab-ci.yml
	cura/Machines/MaterialManager.py
	cura/Machines/VariantManager.py
	cura/Settings/ContainerManager.py
	cura/Settings/MachineManager.py
	tests/TestMachineManager.py
This commit is contained in:
Ghostkeeper 2019-08-13 14:59:05 +02:00
commit 6a8e1557c3
No known key found for this signature in database
GPG key ID: 86BEF881AE2CF276
1383 changed files with 33204 additions and 35215 deletions

View file

@ -4,8 +4,8 @@ from cura.Machines.MaterialManager import MaterialManager
mocked_registry = MagicMock()
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_1 = {"id": "test", "GUID":"TEST!", "base_file": "base_material", "definition": "fdmmachine", "approximate_diameter": "3", "brand": "generic", "material": "pla"}
material_2 = {"id": "base_material", "GUID": "TEST2!", "base_file": "test", "definition": "fdmmachine", "approximate_diameter": "3", "material": "pla"}
mocked_registry.findContainersMetadata = MagicMock(return_value = [material_1, material_2])
@ -26,21 +26,116 @@ def test_initialize(application):
assert manager.getMaterialGroup("test").name == "test"
def test_getAvailableMaterials(application):
def test_getMaterialGroupListByGUID(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 manager.getMaterialGroupListByGUID("TEST!")[0].name == "test"
assert manager.getMaterialGroupListByGUID("TEST2!")[0].name == "base_material"
assert "base_material" in available_materials
assert "test" in available_materials
def test_getRootMaterialIDforDiameter(application):
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
manager = MaterialManager(mocked_registry)
manager.initialize()
assert manager.getRootMaterialIDForDiameter("base_material", "3") == "base_material"
def test_getMaterialNodeByTypeMachineHasNoMaterials(application):
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
manager = MaterialManager(mocked_registry)
manager.initialize()
mocked_stack = MagicMock()
assert manager.getMaterialNodeByType(mocked_stack, "0", "nozzle", "", "") is None
def test_getMaterialNodeByTypeMachineHasMaterialsButNoMaterialFound(application):
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
manager = MaterialManager(mocked_registry)
manager.initialize()
mocked_stack = MagicMock()
mocked_stack.definition.getMetaDataEntry = MagicMock(return_value = True) # For the "has_materials" metadata
assert manager.getMaterialNodeByType(mocked_stack, "0", "nozzle", "", "") is None
def test_getMaterialNodeByTypeMachineHasMaterialsAndMaterialExists(application):
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
manager = MaterialManager(mocked_registry)
manager.initialize()
mocked_result = MagicMock()
manager.getMaterialNode = MagicMock(return_value = mocked_result)
mocked_stack = MagicMock()
mocked_stack.definition.getMetaDataEntry = MagicMock(return_value = True) # For the "has_materials" metadata
assert manager.getMaterialNodeByType(mocked_stack, "0", "nozzle", "", "TEST!") is mocked_result
def test_getAllMaterialGroups(application):
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
manager = MaterialManager(mocked_registry)
manager.initialize()
material_groups = manager.getAllMaterialGroups()
assert "base_material" in material_groups
assert "test" in material_groups
assert material_groups["base_material"].name == "base_material"
assert material_groups["test"].name == "test"
class TestAvailableMaterials:
def test_happy(self, 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_wrongDiameter(self, 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, 200)
assert available_materials == {} # Nothing found.
def test_excludedMaterials(self, application):
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
manager = MaterialManager(mocked_registry)
manager.initialize()
with patch.object(mocked_definition, "getMetaDataEntry", MagicMock(return_value = ["test"])):
available_materials = manager.getAvailableMaterials(mocked_definition, None, None, 3)
assert "base_material" in available_materials
assert "test" not in available_materials
class Test_getFallbackMaterialIdByMaterialType:
def test_happyFlow(self, application):
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
manager = MaterialManager(mocked_registry)
manager.initialize()
assert manager.getFallbackMaterialIdByMaterialType("pla") == "test"
def test_unknownMaterial(self, application):
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
manager = MaterialManager(mocked_registry)
manager.initialize()
assert manager.getFallbackMaterialIdByMaterialType("OMGZOMG") is None
def test_getMaterialNode(application):
with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
manager = MaterialManager(mocked_registry)
manager.initialize()
manager._updateMaps()
assert manager.getMaterialNode("fdmmachine", None, None, 3, "base_material").getMetaDataEntry("id") == "test"