[测试、性能、安全、验收与归档]:完成全量测试验收与 OpenSpec 归档,包含 CLI 验收、NewAPI smoke、安全扫描和主 spec 更新
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import io
|
||||
import json
|
||||
import unittest
|
||||
from contextlib import redirect_stdout
|
||||
|
||||
from owner_voice_pet.cli import main
|
||||
|
||||
|
||||
class CliAcceptanceTests(unittest.TestCase):
|
||||
def call(self, *args: str) -> tuple[int, dict[str, object]]:
|
||||
buffer = io.StringIO()
|
||||
with redirect_stdout(buffer):
|
||||
code = main(list(args))
|
||||
return code, json.loads(buffer.getvalue())
|
||||
|
||||
def test_acceptance_command_runs_end_to_end(self) -> None:
|
||||
code, data = self.call("acceptance")
|
||||
self.assertEqual(code, 0)
|
||||
self.assertTrue(data["success"])
|
||||
self.assertEqual(data["transcript"], "你是谁")
|
||||
self.assertGreaterEqual(data["played_segments"], 1)
|
||||
|
||||
def test_validate_assets_command(self) -> None:
|
||||
code, data = self.call("validate-assets")
|
||||
self.assertEqual(code, 0)
|
||||
self.assertTrue(data["valid"])
|
||||
|
||||
def test_security_check_command_has_no_leaks(self) -> None:
|
||||
code, data = self.call("security-check")
|
||||
self.assertEqual(code, 0)
|
||||
self.assertEqual(data["secret_leaks"], [])
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user