Add stubs for MachineManager testing

It also adds a first test that checks if the setActiveMachine
This commit is contained in:
Jaime van Kessel 2019-02-22 13:49:31 +01:00
parent dd59b9167b
commit b5c270f00a
3 changed files with 47 additions and 0 deletions

View file

@ -363,6 +363,7 @@ class MachineManager(QObject):
ConfigurationErrorMessage.getInstance().addFaultyContainers(global_stack.getId())
return # We're done here
ExtruderManager.getInstance().setActiveExtruderIndex(0) # Switch to first extruder
self._global_container_stack = global_stack
self._application.setGlobalContainerStack(global_stack)
ExtruderManager.getInstance()._globalContainerStackChanged()

View file

@ -0,0 +1,43 @@
from unittest.mock import MagicMock, patch
import pytest
from UM.Settings.ContainerRegistry import ContainerRegistry
from cura.Settings.ExtruderManager import ExtruderManager
from cura.Settings.MachineManager import MachineManager
@pytest.fixture()
def container_registry() -> ContainerRegistry:
return MagicMock()
@pytest.fixture()
def extruder_manager(application, container_registry) -> ExtruderManager:
with patch("cura.CuraApplication.CuraApplication.getInstance", MagicMock(return_value=application)):
with patch("UM.Settings.ContainerRegistry.ContainerRegistry.getInstance", MagicMock(return_value=container_registry)):
manager = ExtruderManager()
return manager
@pytest.fixture()
def machine_manager(application, extruder_manager, container_registry) -> MachineManager:
application.getExtruderManager = MagicMock(return_value = extruder_manager)
with patch("cura.Settings.CuraContainerRegistry.CuraContainerRegistry.getInstance", MagicMock(return_value=container_registry)):
manager = MachineManager(application)
return manager
def test_setActiveMachine(machine_manager):
registry = MagicMock()
mocked_global_stack = MagicMock()
mocked_global_stack.getId = MagicMock(return_value = "test_machine")
registry.findContainerStacks = MagicMock(return_value = [mocked_global_stack])
with patch("cura.Settings.CuraContainerRegistry.CuraContainerRegistry.getInstance", MagicMock(return_value=registry)):
with patch("UM.Settings.ContainerRegistry.ContainerRegistry.getInstance", MagicMock(return_value=registry)):
machine_manager.setActiveMachine("test_machine")
# 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)

View file

@ -77,6 +77,9 @@ def test_duration():
# Fake a print duration message
print_information._onPrintDurationMessage(0, {"Travel": 20}, [10])
# We only set a single time, so the total time must be of the same value.
assert int(print_information.currentPrintTime) == 20
feature_print_times = print_information.getFeaturePrintTimes()
assert int(feature_print_times["Travel"]) == 20