aurask/tests/test_cli.py
Aaron 1ae23d44c1
All checks were successful
aurask-release / build-and-deploy (push) Successful in 3m7s
Expand Aurask k3s production overlay and release pipeline
2026-04-19 18:05:46 +08:00

43 lines
1.6 KiB
Python

from __future__ import annotations
import io
import json
import os
import sys
import tempfile
import unittest
from pathlib import Path
from unittest import mock
from aurask.cli import DEFAULT_DATA_PATH, main
class AuraskCLITests(unittest.TestCase):
def test_worker_once_self_check_exits_cleanly(self) -> None:
with tempfile.TemporaryDirectory() as temp_dir:
data_path = Path(temp_dir) / "state.json"
stdout = io.StringIO()
argv = ["aurask", "worker", "--data", str(data_path), "--once"]
with mock.patch.object(sys, "argv", argv), mock.patch("sys.stdout", stdout):
main()
payload = json.loads(stdout.getvalue())
self.assertEqual(payload["message"], "Aurask worker self-check passed")
self.assertEqual(payload["data_path"], str(data_path))
self.assertGreaterEqual(payload["workflow_templates"], 1)
self.assertGreaterEqual(payload["plans"], 1)
def test_demo_remains_default_command(self) -> None:
with tempfile.TemporaryDirectory() as temp_dir:
current_dir = Path.cwd()
stdout = io.StringIO()
try:
os.chdir(temp_dir)
with mock.patch.object(sys, "argv", ["aurask"]), mock.patch("sys.stdout", stdout):
main()
finally:
os.chdir(current_dir)
payload = json.loads(stdout.getvalue())
self.assertEqual(payload["message"], "Aurask MVP demo completed")
self.assertEqual(payload["workspace_id"][:3], "ws_")
self.assertEqual(DEFAULT_DATA_PATH.parts, (".aurask", "state.json"))