@@ -15,36 +15,35 @@ import ./make-test-python.nix (
1515 boot . kernelModules = [ "snd-dummy" ] ;
1616 } ;
1717
18- testScript = ''
19- import json
20- rpc_get_player = {
21- "id": 1,
22- "method": "slim.request",
23- "params":[0,["player", "id", "0", "?"]]
24- }
18+ testScript = # python
19+ ''
20+ import json
21+ rpc_get_player = {
22+ "id": 1,
23+ "method": "slim.request",
24+ "params":[0,["player", "id", "0", "?"]]
25+ }
2526
26- with subtest("slimserver is started"):
27- machine.wait_for_unit("slimserver.service")
28- # give slimserver a moment to report errors
29- machine.sleep(2)
27+ with subtest("slimserver is started"):
28+ machine.wait_for_unit("slimserver.service")
29+ # give slimserver a moment to report errors
30+ machine.sleep(2)
31+ machine.wait_until_succeeds("journalctl -u slimserver.service | grep 'Starting Lyrion Music'", timeout=120)
32+ machine.wait_for_open_port(9000)
3033
31- with subtest('slimserver module errors are not reported'):
32- machine.fail("journalctl -u slimserver.service | grep 'throw_exception'")
33- machine.fail("journalctl -u slimserver.service | grep 'not installed'")
34- machine.fail("journalctl -u slimserver.service | grep 'not found'")
35- machine.fail("journalctl -u slimserver.service | grep 'The following CPAN modules were found but cannot work with Logitech Media Server'")
36- machine.fail("journalctl -u slimserver.service | grep 'please use the buildme.sh'")
34+ with subtest('slimserver module errors are not reported'):
35+ machine.fail("journalctl -u slimserver.service | grep 'throw_exception'")
36+ machine.fail("journalctl -u slimserver.service | grep 'not installed'")
37+ machine.fail("journalctl -u slimserver.service | grep 'not found'")
38+ machine.fail("journalctl -u slimserver.service | grep 'The following CPAN modules were found but cannot work with Logitech Media Server'")
39+ machine.fail("journalctl -u slimserver.service | grep 'please use the buildme.sh'")
3740
38- with subtest('slimserver is ready'):
39- machine.wait_for_open_port(9000)
40- machine.wait_until_succeeds("journalctl -u slimserver.service | grep 'Completed dbOptimize Scan'")
41-
42- with subtest("squeezelite player successfully connects to slimserver"):
43- machine.wait_for_unit("squeezelite.service")
44- machine.wait_until_succeeds("journalctl -u squeezelite.service | grep -E 'slimproto:[0-9]+ connected'")
45- player_mac = machine.wait_until_succeeds("journalctl -eu squeezelite.service | grep -E 'sendHELO:[0-9]+ mac:'").strip().split(" ")[-1]
46- player_id = machine.succeed(f"curl http://localhost:9000/jsonrpc.js -g -X POST -d '{json.dumps(rpc_get_player)}'")
47- assert player_mac == json.loads(player_id)["result"]["_id"], "squeezelite player not found"
48- '' ;
41+ with subtest("squeezelite player successfully connects to slimserver"):
42+ machine.wait_for_unit("squeezelite.service")
43+ machine.wait_until_succeeds("journalctl -u squeezelite.service | grep -E 'slimproto:[0-9]+ connected'", timeout=120)
44+ player_mac = machine.wait_until_succeeds("journalctl -eu squeezelite.service | grep -E 'sendHELO:[0-9]+ mac:'", timeout=120).strip().split(" ")[-1]
45+ player_id = machine.succeed(f"curl http://localhost:9000/jsonrpc.js -g -X POST -d '{json.dumps(rpc_get_player)}'")
46+ assert player_mac == json.loads(player_id)["result"]["_id"], "squeezelite player not found"
47+ '' ;
4948 }
5049)
0 commit comments