Add test for num instances in machine manager

This commit is contained in:
Jaime van Kessel 2019-03-29 13:34:41 +01:00
parent 0ffcfe041a
commit 83361405a4

View file

@ -7,20 +7,29 @@ from cura.Settings.ExtruderManager import ExtruderManager
from cura.Settings.MachineManager import MachineManager from cura.Settings.MachineManager import MachineManager
@pytest.fixture()
def global_stack():
return MagicMock(name="Global Stack")
@pytest.fixture() @pytest.fixture()
def container_registry() -> ContainerRegistry: def container_registry() -> ContainerRegistry:
return MagicMock() return MagicMock(name = "ContainerRegistry")
@pytest.fixture() @pytest.fixture()
def extruder_manager(application, container_registry) -> ExtruderManager: def extruder_manager(application, container_registry) -> ExtruderManager:
if ExtruderManager.getInstance() is not None:
# Reset the data
ExtruderManager._ExtruderManager__instance = None
with patch("cura.CuraApplication.CuraApplication.getInstance", MagicMock(return_value=application)): with patch("cura.CuraApplication.CuraApplication.getInstance", MagicMock(return_value=application)):
with patch("UM.Settings.ContainerRegistry.ContainerRegistry.getInstance", MagicMock(return_value=container_registry)): with patch("UM.Settings.ContainerRegistry.ContainerRegistry.getInstance", MagicMock(return_value=container_registry)):
manager = ExtruderManager() manager = ExtruderManager()
return manager return manager
@pytest.fixture() @pytest.fixture()
def machine_manager(application, extruder_manager, container_registry) -> MachineManager: def machine_manager(application, extruder_manager, container_registry, global_stack) -> MachineManager:
application.getExtruderManager = MagicMock(return_value = extruder_manager) application.getExtruderManager = MagicMock(return_value = extruder_manager)
application.getGlobalContainerStack = MagicMock(return_value = global_stack)
with patch("cura.Settings.CuraContainerRegistry.CuraContainerRegistry.getInstance", MagicMock(return_value=container_registry)): with patch("cura.Settings.CuraContainerRegistry.CuraContainerRegistry.getInstance", MagicMock(return_value=container_registry)):
manager = MachineManager(application) manager = MachineManager(application)
@ -41,3 +50,13 @@ def test_setActiveMachine(machine_manager):
# Although we mocked the application away, we still want to know if it was notified about the attempted change. # Although we mocked the application away, we still want to know if it was notified about the attempted change.
machine_manager._application.setGlobalContainerStack.assert_called_with(mocked_global_stack) machine_manager._application.setGlobalContainerStack.assert_called_with(mocked_global_stack)
def test_hasUserSettings(machine_manager, application):
mocked_stack = application.getGlobalContainerStack()
mocked_instance_container = MagicMock(name="UserSettingContainer")
mocked_instance_container.getNumInstances = MagicMock(return_value = 12)
mocked_stack.getTop = MagicMock(return_value = mocked_instance_container)
assert machine_manager.numUserSettings == 12
assert machine_manager.hasUserSettings