From 83361405a4c4fd76f1bbf9ec3f45146a852c8dd7 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 29 Mar 2019 13:34:41 +0100 Subject: [PATCH] Add test for num instances in machine manager --- tests/TestMachineManager.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/tests/TestMachineManager.py b/tests/TestMachineManager.py index b989a6ee79..609d4b127a 100644 --- a/tests/TestMachineManager.py +++ b/tests/TestMachineManager.py @@ -7,20 +7,29 @@ from cura.Settings.ExtruderManager import ExtruderManager from cura.Settings.MachineManager import MachineManager +@pytest.fixture() +def global_stack(): + return MagicMock(name="Global Stack") + @pytest.fixture() def container_registry() -> ContainerRegistry: - return MagicMock() + return MagicMock(name = "ContainerRegistry") @pytest.fixture() 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("UM.Settings.ContainerRegistry.ContainerRegistry.getInstance", MagicMock(return_value=container_registry)): - manager = ExtruderManager() + manager = ExtruderManager() return manager @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.getGlobalContainerStack = MagicMock(return_value = global_stack) with patch("cura.Settings.CuraContainerRegistry.CuraContainerRegistry.getInstance", MagicMock(return_value=container_registry)): 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. 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