From 7bb35cdbf73fcff541030b42755b5782053a5e26 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 15 Mar 2019 16:17:28 +0100 Subject: [PATCH] Add test cases for the ContainerManager --- cura/Settings/ContainerManager.py | 6 +++-- tests/Settings/TestContainerManager.py | 32 ++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 tests/Settings/TestContainerManager.py diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index 133e04e8fc..2422fa3b21 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -47,8 +47,10 @@ class ContainerManager(QObject): if ContainerManager.__instance is not None: raise RuntimeError("Try to create singleton '%s' more than once" % self.__class__.__name__) ContainerManager.__instance = self - - super().__init__(parent = application) + try: + super().__init__(parent = application) + except TypeError: + super().__init__() self._application = application # type: CuraApplication self._plugin_registry = self._application.getPluginRegistry() # type: PluginRegistry diff --git a/tests/Settings/TestContainerManager.py b/tests/Settings/TestContainerManager.py new file mode 100644 index 0000000000..e257eccd7a --- /dev/null +++ b/tests/Settings/TestContainerManager.py @@ -0,0 +1,32 @@ +from unittest import TestCase +from unittest.mock import MagicMock + +from cura.Settings.ContainerManager import ContainerManager + + +class TestContainerManager(TestCase): + def setUp(self): + + self._application = MagicMock() + self._container_registry = MagicMock() + self._machine_manager = MagicMock() + + self._containers_meta_data = [{"id": "test", "test_data": "omg"}] + self._container_registry.findContainersMetadata = MagicMock(return_value = self._containers_meta_data) + + self._application.getContainerRegistry = MagicMock(return_value = self._container_registry) + self._application.getMachineManager = MagicMock(return_value = self._machine_manager) + + # Destroy the previous instance of the container manager + if ContainerManager.getInstance() is not None: + ContainerManager._ContainerManager__instance = None + + self._container_manager = ContainerManager(self._application) + + def test_getContainerMetaDataEntry(self): + assert self._container_manager.getContainerMetaDataEntry("test", "test_data") == "omg" + assert self._container_manager.getContainerMetaDataEntry("test", "entry_that_is_not_defined") == "" + + def test_clearUserContainer(self): + self._container_manager.clearUserContainers() + assert self._machine_manager.activeMachine.userChanges.clear.call_count == 1