71 lines
2.4 KiB
Python
71 lines
2.4 KiB
Python
"""Тесты полной настройки киоска Pi."""
|
|
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
from unittest.mock import patch
|
|
|
|
from app.services.kiosk_full_setup_service import (
|
|
apply_full_kiosk_setup,
|
|
get_full_kiosk_setup_status,
|
|
)
|
|
|
|
|
|
class KioskFullSetupTests(unittest.TestCase):
|
|
@patch("app.services.kiosk_full_setup_service.get_kiosk_boot_status")
|
|
@patch("app.services.kiosk_full_setup_service.get_pi_platform_setup_status")
|
|
def test_status_ready(self, mock_pi: object, mock_kiosk: object) -> None:
|
|
mock_pi.return_value = {
|
|
"running_as_root": True,
|
|
"platform_ready": True,
|
|
}
|
|
mock_kiosk.return_value = {
|
|
"kiosk_enabled": True,
|
|
"kiosk_mode": "system_labwc",
|
|
"chromium_found": True,
|
|
"gui_user": "komton",
|
|
}
|
|
st = get_full_kiosk_setup_status({})
|
|
self.assertTrue(st["full_setup_ready"])
|
|
|
|
@patch(
|
|
"app.services.kiosk_full_setup_service.get_full_kiosk_setup_status",
|
|
return_value={"full_setup_ready": False},
|
|
)
|
|
@patch("app.services.kiosk_full_setup_service.schedule_system_reboot")
|
|
@patch("app.services.kiosk_full_setup_service.set_kiosk_boot")
|
|
@patch("app.services.kiosk_full_setup_service.apply_pi_platform_setup")
|
|
@patch("app.services.kiosk_full_setup_service._is_root", return_value=True)
|
|
def test_apply_ok(
|
|
self,
|
|
_root: object,
|
|
mock_pi: object,
|
|
mock_kiosk: object,
|
|
mock_reboot: object,
|
|
_status: object,
|
|
) -> None:
|
|
mock_pi.return_value = {"ok": True, "message": "pi ok"}
|
|
mock_kiosk.return_value = {
|
|
"ok": True,
|
|
"message": "kiosk ok",
|
|
"target_url": "http://localhost/scales",
|
|
}
|
|
mock_reboot.return_value = {"scheduled": True, "message": "reboot"}
|
|
|
|
cfg = {"WESP_FULL_SETUP_REBOOT_DELAY_SEC": 10}
|
|
r = apply_full_kiosk_setup(cfg, hide_desktop=True)
|
|
self.assertTrue(r.get("ok"))
|
|
self.assertEqual(r.get("steps_completed"), ["pi_platform", "kiosk", "reboot"])
|
|
mock_pi.assert_called_once()
|
|
mock_kiosk.assert_called_once()
|
|
mock_reboot.assert_called_once()
|
|
|
|
@patch("app.services.kiosk_full_setup_service._is_root", return_value=False)
|
|
def test_apply_requires_root(self, _root: object) -> None:
|
|
r = apply_full_kiosk_setup({})
|
|
self.assertFalse(r.get("ok"))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|