123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- 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 The name from the metadata, or "MockContainer" if there was no
- # name provided.
- def getName(self):
- return self._metadata.get("name", "MockContainer")
- ## Get whether a container stack is enabled or not.
- # \return Always returns True.
- @property
- def isEnabled(self):
- return True
- ## 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
- # Should return false (or even throw an exception) if trust (or other verification) is invalidated.
- def _trustHook(self, file_name: Optional[str]) -> bool:
- return True
- 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()
- def isDirty(self):
- return True
- metaDataChanged = Signal()
- propertyChanged = Signal()
- containersChanged = Signal()
|