Просмотр исходного кода

Fix running tests via CMake

The Settings folder conflicts with the same folder in Uranium, so it couldn't find MockContainer from the Uranium version.

Contributes to issue CURA-6600.
Ghostkeeper 5 лет назад
Родитель
Сommit
6a5f425468
3 измененных файлов с 121 добавлено и 0 удалено
  1. 121 0
      tests/Settings/MockContainer.py
  2. 0 0
      tests/Settings/__init__.py
  3. 0 0
      tests/__init__.py

+ 121 - 0
tests/Settings/MockContainer.py

@@ -0,0 +1,121 @@
+from typing import Optional
+
+from UM.Settings.Interfaces import ContainerInterface
+import UM.PluginObject
+from UM.Signal import Signal
+
+
+##  Fake container class to add to the container registry.
+#
+#   This allows us to test the container registry without testing the container
+#   class. If something is wrong in the container class it won't influence this
+#   test.
+
+class MockContainer(ContainerInterface, UM.PluginObject.PluginObject):
+    ##  Initialise a new definition container.
+    #
+    #   The container will have the specified ID and all metadata in the
+    #   provided dictionary.
+    def __init__(self, metadata = None):
+        super().__init__()
+        if metadata is None:
+            self._metadata = {}
+        else:
+            self._metadata = metadata
+        self._plugin_id = "MockContainerPlugin"
+
+    ##  Gets the ID that was provided at initialisation.
+    #
+    #   \return The ID of the container.
+    def getId(self):
+        return self._metadata["id"]
+
+    ##  Gets all metadata of this container.
+    #
+    #   This returns the metadata dictionary that was provided in the
+    #   constructor of this mock container.
+    #
+    #   \return The metadata for this container.
+    def getMetaData(self):
+        return self._metadata
+
+    ##  Gets a metadata entry from the metadata dictionary.
+    #
+    #   \param key The key of the metadata entry.
+    #   \return The value of the metadata entry, or None if there is no such
+    #   entry.
+    def getMetaDataEntry(self, entry, default = None):
+        if entry in self._metadata:
+            return self._metadata[entry]
+        return default
+
+    ##  Gets a human-readable name for this container.
+    #
+    #   \return Always returns "MockContainer".
+    def getName(self):
+        return "MockContainer"
+
+    ##  Get whether the container item is stored on a read only location in the filesystem.
+    #
+    #   \return Always returns False
+    def isReadOnly(self):
+        return False
+
+    ##  Mock get path
+    def getPath(self):
+        return "/path/to/the/light/side"
+
+    ##  Mock set path
+    def setPath(self, path):
+        pass
+
+    def getAllKeys(self):
+        pass
+
+    def setProperty(self, key, property_name, property_value, container = None, set_from_cache = False):
+        pass
+
+    def getProperty(self, key, property_name, context=None):
+        if key in self.items:
+            return self.items[key]
+
+        return None
+
+    ##  Get the value of a container item.
+    #
+    #   Since this mock container cannot contain any items, it always returns
+    #   None.
+    #
+    #   \return Always returns None.
+    def getValue(self, key):
+        pass
+
+    ##  Get whether the container item has a specific property.
+    #
+    #   This method is not implemented in the mock container.
+    def hasProperty(self, key, property_name):
+        return key in self.items
+
+    ##  Serializes the container to a string representation.
+    #
+    #   This method is not implemented in the mock container.
+    def serialize(self, ignored_metadata_keys = None):
+        raise NotImplementedError()
+
+    ##  Deserializes the container from a string representation.
+    #
+    #   This method is not implemented in the mock container.
+    def deserialize(self, serialized, file_name: Optional[str] = None):
+        raise NotImplementedError()
+
+    @classmethod
+    def getConfigurationTypeFromSerialized(cls, serialized: str):
+        raise NotImplementedError()
+
+    @classmethod
+    def getVersionFromSerialized(cls, serialized):
+        raise NotImplementedError()
+
+    metaDataChanged = Signal()
+    propertyChanged = Signal()
+    containersChanged = Signal()

+ 0 - 0
tests/Settings/__init__.py


+ 0 - 0
tests/__init__.py