mirror of
https://github.com/baketnk/frame-yap.git
synced 2026-10-06 03:00:04 +02:00
Add user-local desktop launcher and record Frame menu test
This commit is contained in:
1 parent
26113906f0
commit
417f81cb09
6 files changed
+122
-2
No files matched your search
@@ -77,6 +77,9 @@ class InstallTests(unittest.TestCase):
|
||||
self.assertEqual(manifest["applications"][0]["binary_path_linux"], str(launcher))
|
||||
self.assertEqual(manifest["applications"][0]["binary_path_linux_arm"], str(launcher))
|
||||
self.assertNotIn("binary_path", manifest["applications"][0])
|
||||
desktop = self.data / "applications/frameyap.desktop"
|
||||
self.assertIn(f'Exec="{launcher}"', desktop.read_text())
|
||||
self.assertIn("Terminal=false", desktop.read_text())
|
||||
(root / "config-untouched").write_text("keep")
|
||||
self.install("v1", a1, h1)
|
||||
(self.stage / "bin/frameyap").write_text("next binary")
|
||||
@@ -101,6 +104,7 @@ class InstallTests(unittest.TestCase):
|
||||
self.assertTrue((root / "saved-models/v1/weights.bin").exists())
|
||||
self.assertTrue((root / "saved-models/v2/weights.bin").exists())
|
||||
self.assertFalse(launcher.exists())
|
||||
self.assertFalse(desktop.exists())
|
||||
|
||||
def test_digest_and_same_version_mismatch_leave_previous(self):
|
||||
a, h = self.package("v1")
|
||||
@@ -154,6 +158,20 @@ class InstallTests(unittest.TestCase):
|
||||
self.assertEqual(os.readlink(self.data / "frameyap/current"), "versions/v1")
|
||||
self.assertFalse((self.data / "frameyap/versions/v2").exists())
|
||||
|
||||
def test_foreign_desktop_entry_is_preserved(self):
|
||||
a, h = self.package("v1")
|
||||
desktop = self.data / "applications/frameyap.desktop"
|
||||
desktop.parent.mkdir(parents=True)
|
||||
desktop.write_text("foreign shortcut\n")
|
||||
with self.assertRaisesRegex(ValueError, "foreign file"):
|
||||
self.install("v1", a, h)
|
||||
self.assertEqual(desktop.read_text(), "foreign shortcut\n")
|
||||
self.assertFalse((self.data / "frameyap/current").exists())
|
||||
|
||||
def test_desktop_exec_escapes_field_codes(self):
|
||||
entry = installer.desired_desktop(Path('/home/steam%user/.local/bin/frameyap')).decode()
|
||||
self.assertIn('Exec="/home/steam%%user/.local/bin/frameyap"', entry)
|
||||
|
||||
def test_traversal_and_link_archives_rejected(self):
|
||||
a, h = self.package("v1")
|
||||
self.install("v1", a, h)
|
||||
|
||||
Reference in new issue
Block a user