[测试、性能、安全、验收与归档]:完成全量测试验收与 OpenSpec 归档,包含 CLI 验收、NewAPI smoke、安全扫描和主 spec 更新

This commit is contained in:
mkbk
2026-06-17 18:42:11 +08:00
parent 667c8941f2
commit 1b884ac6a9
15 changed files with 522 additions and 28 deletions
+27 -4
View File
@@ -120,12 +120,14 @@ class PipelineLlmTtsTests(unittest.TestCase):
def __exit__(self, *args: object) -> None:
return None
def __iter__(self):
def read(self):
event = {"choices": [{"delta": {"content": "你好。"}, "finish_reason": None}]}
done = {"choices": [{"delta": {}, "finish_reason": "stop"}]}
yield f"data: {json.dumps(event, ensure_ascii=False)}\n".encode()
yield f"data: {json.dumps(done, ensure_ascii=False)}\n".encode()
yield b"data: [DONE]\n"
return (
f"data: {json.dumps(event, ensure_ascii=False)}\n"
f"data: {json.dumps(done, ensure_ascii=False)}\n"
"data: [DONE]\n"
).encode()
requests = []
@@ -146,6 +148,27 @@ class PipelineLlmTtsTests(unittest.TestCase):
self.assertTrue(body["stream"])
self.assertEqual(body["model"], "test-model")
def test_openai_non_stream_json_parser(self) -> None:
class FakeResponse:
def __enter__(self) -> "FakeResponse":
return self
def __exit__(self, *args: object) -> None:
return None
def read(self):
return json.dumps({"choices": [{"message": {"content": "非流式回复。"}}]}).encode()
config = AppConfig(
llm_base_url="https://newapi.mkbk.shop",
llm_api_key="secret",
llm_model="test-model",
llm_api_style="chat_completions",
llm_stream=False,
)
provider = OpenAICompatibleLlmProvider(config, urlopen=lambda request, timeout: FakeResponse())
self.assertEqual(list(provider.stream_reply([Message("user", "你好", 1.0)]))[0].text_delta, "非流式回复。")
if __name__ == "__main__":
unittest.main()