summaryrefslogtreecommitdiff
path: root/tests/test_wrapper_service.py
diff options
context:
space:
mode:
authorxXJSONDeruloXx <danielhimebauch@gmail.com>2026-09-11 11:08:12 -0400
committerxXJSONDeruloXx <danielhimebauch@gmail.com>2026-09-11 11:08:12 -0400
commit954b2abc47d8772211cb8ecee523900f823184e8 (patch)
treec25109bebc87ccfb9e71a0863a10e81caa695908 /tests/test_wrapper_service.py
parentbc73d150230f92d614962f7384a7430cf64dcd14 (diff)
downloaddecky-lsfg-vk-954b2abc47d8772211cb8ecee523900f823184e8.tar.gz
decky-lsfg-vk-954b2abc47d8772211cb8ecee523900f823184e8.zip
better uninstall cleanup
Diffstat (limited to 'tests/test_wrapper_service.py')
-rw-r--r--tests/test_wrapper_service.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/test_wrapper_service.py b/tests/test_wrapper_service.py
index 5c291c7..20a08ff 100644
--- a/tests/test_wrapper_service.py
+++ b/tests/test_wrapper_service.py
@@ -158,6 +158,35 @@ class WrapperServiceTests(unittest.TestCase):
)
self.assertEqual(result.stdout, "ok")
+ def test_purge_removes_owned_wrapper_and_state(self):
+ self.service.set("123", self._state(), non_steam=True)
+ self.assertTrue(self.service.get("123")["non_steam"])
+ self.assertEqual(self.service.list_apps()["apps"][0]["non_steam"], True)
+ response = self.service.purge()
+ self.assertTrue(response["success"])
+ self.assertEqual(response["removed_files"], [str(self.service.wrapper_path), str(self.service.sidecar_path)])
+ self.assertFalse(self.service.wrapper_path.exists())
+ self.assertFalse(self.service.sidecar_path.exists())
+
+ def test_purge_refuses_foreign_wrapper(self):
+ self.service.wrapper_path.write_text("#!/bin/sh\necho foreign\n", encoding="utf-8")
+ response = self.service.purge()
+ self.assertFalse(response["success"])
+ self.assertIn("unowned", response["error"])
+ self.assertTrue(self.service.wrapper_path.exists())
+
+ def test_purge_refuses_invalid_state(self):
+ self.service.config_dir.mkdir(parents=True, exist_ok=True)
+ self.service.sidecar_path.write_text("not json", encoding="utf-8")
+ self.service.wrapper_path.write_text(
+ f"#!/bin/sh\n{self.service.MARKER}\nexec \"$@\"\n",
+ encoding="utf-8",
+ )
+ response = self.service.purge()
+ self.assertFalse(response["success"])
+ self.assertTrue(self.service.wrapper_path.exists())
+ self.assertTrue(self.service.sidecar_path.exists())
+
if __name__ == "__main__":
unittest.main()