aboutsummaryrefslogtreecommitdiff
path: root/libs/plugin_python/tests/runner/plugins/dummy-game.py
diff options
context:
space:
mode:
Diffstat (limited to 'libs/plugin_python/tests/runner/plugins/dummy-game.py')
-rw-r--r--libs/plugin_python/tests/runner/plugins/dummy-game.py45
1 files changed, 45 insertions, 0 deletions
diff --git a/libs/plugin_python/tests/runner/plugins/dummy-game.py b/libs/plugin_python/tests/runner/plugins/dummy-game.py
new file mode 100644
index 0000000..e17c9b8
--- /dev/null
+++ b/libs/plugin_python/tests/runner/plugins/dummy-game.py
@@ -0,0 +1,45 @@
+from collections.abc import Sequence
+
+from PyQt6.QtWidgets import QWidget
+
+import mobase
+
+
+class DummyModDataChecker(mobase.ModDataChecker):
+ def dataLooksValid(
+ self, filetree: mobase.IFileTree
+ ) -> mobase.ModDataChecker.CheckReturn:
+ return mobase.ModDataChecker.VALID
+
+ def fix(self, filetree: mobase.IFileTree) -> mobase.IFileTree:
+ return filetree
+
+
+class DummySaveGameInfo(mobase.SaveGameInfo):
+ def getMissingAssets(self, save: mobase.ISaveGame) -> dict[str, Sequence[str]]:
+ return {}
+
+ def getSaveGameWidget(self, parent: QWidget) -> mobase.ISaveGameInfoWidget | None:
+ return None
+
+
+# we do not implement everything since this will do fine if we do not call anything
+# from the C++ side
+#
+class DummyGame(mobase.IPluginGame):
+ _features: dict[type, object]
+
+ def __init__(self):
+ super().__init__()
+
+ self._features = {
+ mobase.ModDataChecker: DummyModDataChecker(),
+ mobase.SaveGameInfo: DummySaveGameInfo(),
+ }
+
+ def _featureList(self) -> dict[type, object]:
+ return self._features
+
+
+def createPlugin() -> mobase.IPlugin:
+ return DummyGame() # type: ignore