TestMaterialManager.py 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from unittest.mock import MagicMock, patch
  2. from cura.Machines.MaterialManager import MaterialManager
  3. mocked_registry = MagicMock()
  4. material_1 = {"id": "test", "GUID":"TEST!", "base_file": "base_material", "definition": "fdmmachine", "approximate_diameter": 3, "brand": "generic"}
  5. material_2 = {"id": "base_material", "GUID": "TEST2!", "base_file": "test", "definition": "fdmmachine", "approximate_diameter": 3}
  6. mocked_registry.findContainersMetadata = MagicMock(return_value = [material_1, material_2])
  7. mocked_definition = MagicMock()
  8. mocked_definition.getId = MagicMock(return_value = "fdmmachine")
  9. mocked_definition.getMetaDataEntry = MagicMock(return_value = [])
  10. def test_initialize(application):
  11. # Just test if the simple loading works
  12. with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
  13. manager = MaterialManager(mocked_registry)
  14. manager.initialize()
  15. # Double check that we actually got some material nodes
  16. assert manager.getMaterialGroup("base_material").name == "base_material"
  17. assert manager.getMaterialGroup("test").name == "test"
  18. def test_getAvailableMaterials(application):
  19. with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
  20. manager = MaterialManager(mocked_registry)
  21. manager.initialize()
  22. available_materials = manager.getAvailableMaterials(mocked_definition, None, None, 3)
  23. assert "base_material" in available_materials
  24. assert "test" in available_materials
  25. def test_getMaterialNode(application):
  26. with patch("UM.Application.Application.getInstance", MagicMock(return_value=application)):
  27. manager = MaterialManager(mocked_registry)
  28. manager.initialize()
  29. assert manager.getMaterialNode("fdmmachine", None, None, 3, "base_material").getMetaDataEntry("id") == "test"