mirror of
https://18126008609:longquanjian123@gitee.com/feigong123/aurask.git
synced 2026-04-19 13:38:24 +00:00
43 lines
1.6 KiB
Python
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"))
|