summaryrefslogtreecommitdiff
path: root/tests/test_plugin_migration.py
diff options
context:
space:
mode:
authorxXJSONDeruloXx <danielhimebauch@gmail.com>2026-09-07 20:57:26 -0400
committerxXJSONDeruloXx <danielhimebauch@gmail.com>2026-09-07 20:57:26 -0400
commit54acc36f16e1336772354f979a618cce65061f82 (patch)
tree9aae51351de2468277b3392b984e5caa99c271b4 /tests/test_plugin_migration.py
parente21eee83fc58fee3481aa0e17feb7cd9a8d8750e (diff)
downloaddecky-lsfg-vk-54acc36f16e1336772354f979a618cce65061f82.tar.gz
decky-lsfg-vk-54acc36f16e1336772354f979a618cce65061f82.zip
refactor: make runtime installation explicit
Diffstat (limited to 'tests/test_plugin_migration.py')
-rw-r--r--tests/test_plugin_migration.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/tests/test_plugin_migration.py b/tests/test_plugin_migration.py
new file mode 100644
index 0000000..a392f85
--- /dev/null
+++ b/tests/test_plugin_migration.py
@@ -0,0 +1,50 @@
+import asyncio
+import sys
+import types
+import unittest
+from unittest.mock import Mock
+
+
+class PluginMigrationTests(unittest.TestCase):
+ def test_migration_only_runs_decky_path_migrations(self):
+ decky = types.SimpleNamespace(
+ DECKY_HOME="/decky",
+ DECKY_USER_HOME="/home/deck",
+ migrate_logs=Mock(),
+ migrate_settings=Mock(),
+ migrate_runtime=Mock(),
+ logger=Mock(),
+ )
+ previous_decky = sys.modules.get("decky")
+ previous_tomllib = sys.modules.get("tomllib")
+ sys.modules["decky"] = decky
+ sys.modules["tomllib"] = types.SimpleNamespace(loads=Mock())
+ try:
+ sys.path.insert(0, "py_modules")
+ from lsfg_vk.plugin import Plugin
+
+ plugin = Plugin.__new__(Plugin)
+ plugin.installation_service = Mock()
+ plugin.flatpak_service = Mock()
+
+ asyncio.run(plugin._migration())
+
+ decky.migrate_logs.assert_called_once()
+ decky.migrate_settings.assert_called_once()
+ decky.migrate_runtime.assert_called_once()
+ plugin.installation_service.install.assert_not_called()
+ plugin.flatpak_service.migrate_v2.assert_not_called()
+ finally:
+ sys.path.remove("py_modules")
+ if previous_decky is None:
+ sys.modules.pop("decky", None)
+ else:
+ sys.modules["decky"] = previous_decky
+ if previous_tomllib is None:
+ sys.modules.pop("tomllib", None)
+ else:
+ sys.modules["tomllib"] = previous_tomllib
+
+
+if __name__ == "__main__":
+ unittest.main()