|
@@ -1,8 +1,12 @@
|
|
|
from unittest import TestCase
|
|
|
from unittest.mock import MagicMock
|
|
|
|
|
|
-from cura.Settings.ContainerManager import ContainerManager
|
|
|
+from PyQt5.QtCore import QUrl
|
|
|
|
|
|
+from UM.MimeTypeDatabase import MimeTypeDatabase
|
|
|
+from cura.Settings.ContainerManager import ContainerManager
|
|
|
+import tempfile
|
|
|
+import os
|
|
|
|
|
|
class TestContainerManager(TestCase):
|
|
|
def setUp(self):
|
|
@@ -13,12 +17,17 @@ class TestContainerManager(TestCase):
|
|
|
|
|
|
self._mocked_mime = MagicMock()
|
|
|
self._mocked_mime.preferredSuffix = "omg"
|
|
|
+ self._mocked_mime.suffixes = ["omg"]
|
|
|
self._mocked_mime.comment = "UnitTest!"
|
|
|
|
|
|
+ self._mocked_container = MagicMock()
|
|
|
+ self._mocked_container_data = "SOME DATA :D"
|
|
|
+ self._mocked_container.serialize = MagicMock(return_value = self._mocked_container_data)
|
|
|
+
|
|
|
self._containers_meta_data = [{"id": "test", "test_data": "omg"}]
|
|
|
self._container_registry.findContainersMetadata = MagicMock(return_value = self._containers_meta_data)
|
|
|
self._container_registry.getMimeTypeForContainer = MagicMock(return_value = self._mocked_mime)
|
|
|
-
|
|
|
+ self._container_registry.findContainers = MagicMock(return_value = [self._mocked_container])
|
|
|
self._application.getContainerRegistry = MagicMock(return_value = self._container_registry)
|
|
|
self._application.getMachineManager = MagicMock(return_value = self._machine_manager)
|
|
|
|
|
@@ -27,6 +36,10 @@ class TestContainerManager(TestCase):
|
|
|
ContainerManager._ContainerManager__instance = None
|
|
|
|
|
|
self._container_manager = ContainerManager(self._application)
|
|
|
+ MimeTypeDatabase.addMimeType(self._mocked_mime)
|
|
|
+
|
|
|
+ def tearDown(self):
|
|
|
+ MimeTypeDatabase.removeMimeType(self._mocked_mime)
|
|
|
|
|
|
def test_getContainerMetaDataEntry(self):
|
|
|
assert self._container_manager.getContainerMetaDataEntry("test", "test_data") == "omg"
|
|
@@ -43,3 +56,21 @@ class TestContainerManager(TestCase):
|
|
|
# Pretend that a new type was added.
|
|
|
self._container_registry.getContainerTypes = MagicMock(return_value=[("None", None)])
|
|
|
assert self._container_manager.getContainerNameFilters("") == ['UnitTest! (*.omg)', 'All Files (*)']
|
|
|
+
|
|
|
+ def test_exportContainerUnknownFileType(self):
|
|
|
+ # The filetype is not known, so this should cause an error!
|
|
|
+ assert self._container_manager.exportContainer("test", "zomg", "whatever")["status"] == "error"
|
|
|
+
|
|
|
+ def test_exportContainerInvalidPath(self):
|
|
|
+ assert self._container_manager.exportContainer("test", "zomg", "")["status"] == "error"
|
|
|
+ assert self._container_manager.exportContainer("test", "zomg", QUrl())["status"] == "error"
|
|
|
+
|
|
|
+ def test_exportContainerInvalidId(self):
|
|
|
+ assert self._container_manager.exportContainer("", "whatever", "whatever")["status"] == "error"
|
|
|
+
|
|
|
+ def test_exportContainer(self):
|
|
|
+ with tempfile.TemporaryDirectory() as tmpdirname:
|
|
|
+ result = self._container_manager.exportContainer("test", "whatever", os.path.join(tmpdirname, "whatever.omg"))
|
|
|
+ assert(os.path.exists(result["path"]))
|
|
|
+ with open(result["path"], "r", encoding="utf-8") as f:
|
|
|
+ assert f.read() == self._mocked_container_data
|