Initial commit: add AutoDeploy project

This commit is contained in:
wangpeng
2026-07-14 16:30:36 +08:00
commit 2d7b6216ba
23 changed files with 3615 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
import sys
import tempfile
import unittest
from pathlib import Path
from unittest.mock import patch
from deploy_tool.service_console import main
class ServiceConsoleTests(unittest.TestCase):
def test_tees_service_output_to_log_and_removes_pid_file(self):
with tempfile.TemporaryDirectory() as temp:
root = Path(temp)
log_path = root / "service.log"
pid_path = root / "service.pid"
argv = [
"service_console.py",
"--log",
str(log_path),
"--pid-file",
str(pid_path),
"--",
sys.executable,
"-c",
"print('service-ready')",
]
with patch.object(sys, "argv", argv):
exit_code = main()
self.assertEqual(exit_code, 0)
self.assertIn("service-ready", log_path.read_text(encoding="utf-8"))
self.assertFalse(pid_path.exists())
if __name__ == "__main__":
unittest.main()