[测试、性能、安全、验收与归档]:完成全量测试验收与 OpenSpec 归档,包含 CLI 验收、NewAPI smoke、安全扫描和主 spec 更新
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user