1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
import sys
import types
import unittest
from pathlib import Path
from unittest.mock import Mock
sys.modules.setdefault(
"decky",
types.SimpleNamespace(DECKY_USER_HOME="/home/deck", logger=Mock()),
)
sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "py_modules"))
from lsfg_vk.steam_service import SteamService, classify_shortcut_transport
class SteamTransportTests(unittest.TestCase):
def test_only_direct_canonical_flatpak_forms_are_classified(self):
self.assertEqual(
classify_shortcut_transport(
"/usr/bin/flatpak",
"run com.example.PCSX2 --fullscreen",
),
{"kind": "flatpak", "flatpakAppId": "com.example.PCSX2"},
)
self.assertEqual(
classify_shortcut_transport(
"/usr/bin/flatpak run com.example.PCSX2",
"--fullscreen",
),
{"kind": "flatpak", "flatpakAppId": "com.example.PCSX2"},
)
self.assertEqual(
classify_shortcut_transport(
"/usr/bin/bash",
"~/launch-game.sh --fullscreen",
),
{"kind": "host"},
)
self.assertEqual(
classify_shortcut_transport(
"/usr/bin/flatpak",
"--user run com.example.PCSX2",
),
{"kind": "host"},
)
self.assertEqual(
classify_shortcut_transport(
"/usr/bin/flatpak",
"run bash ~/launch-game.sh",
),
{"kind": "host"},
)
def test_shortcut_data_preserves_transport_inputs(self):
game = SteamService._shortcut_game(
{
"appid": 123456,
"AppName": "PCSX2 shortcut",
"Exe": "/usr/bin/flatpak",
"LaunchOptions": "run net.pcsx2.PCSX2 --fullscreen",
"StartDir": "/home/deck/Games",
}
)
self.assertEqual(game["appid"], "123456")
self.assertEqual(game["transport"], {
"kind": "flatpak",
"flatpakAppId": "net.pcsx2.PCSX2",
})
self.assertEqual(game["executable"], "/usr/bin/flatpak")
self.assertEqual(game["arguments"], "run net.pcsx2.PCSX2 --fullscreen")
self.assertEqual(game["startDir"], "/home/deck/Games")
if __name__ == "__main__":
unittest.main()
|