Add status page quick actions

Co-authored-by: Copilot <[email protected]>
This commit is contained in:
Mathieu Moran
2026-08-10 18:40:22 -04:00
co-authored by Copilot
parent ef38ec92b4
commit 8907c51016
10 changed files with 202 additions and 2 deletions
+31 -1
View File
@@ -1,5 +1,6 @@
import unittest
from unittest.mock import patch
import subprocess
from unittest.mock import MagicMock, patch
from modules import app_status
@@ -104,6 +105,35 @@ class AppStatusTest(unittest.TestCase):
self.assertFalse(status["uplink"]["ok"])
self.assertIn("nmcli failed", status["uplink"]["error"])
@patch("modules.app_status.Thread")
@patch("modules.app_status.subprocess.run")
def test_request_app_restart_schedules_background_restart(self, run, thread):
run.return_value = MagicMock(returncode=0, stdout="", stderr="")
thread_instance = MagicMock()
thread.return_value = thread_instance
result = app_status.request_app_restart()
self.assertEqual(result["status"], "restart_scheduled")
run.assert_called_once_with(
["sudo", "-n", "-l", "/usr/bin/systemctl", "restart", "--no-block", "yaris-obd.service"],
capture_output=True,
text=True,
timeout=5,
check=True,
)
thread.assert_called_once_with(
target=app_status._delayed_restart,
args=(1,),
daemon=True,
)
thread_instance.start.assert_called_once_with()
@patch("modules.app_status.subprocess.run", side_effect=subprocess.CalledProcessError(1, "sudo"))
def test_request_app_restart_requires_installed_permission(self, _run):
with self.assertRaises(RuntimeError):
app_status.request_app_restart()
if __name__ == "__main__":
unittest.main()