This commit is contained in:
Your Name
2026-08-18 14:08:38 +08:00
parent 8b9df1154c
commit bc1228a310
77 changed files with 10763 additions and 1181 deletions
+46
View File
@@ -74,6 +74,52 @@ def test_post_uses_json_and_never_retries_timeout() -> None:
assert caught.value.data["attempts"] == 1
def test_post_event_stream_sends_exact_contract_and_preserves_event_order() -> None:
requests: list[httpx.Request] = []
content = (
'event: start\ndata: {"model_key":"qwen"}\n\n'
'event: delta\ndata: {"content":""}\n\n'
'event: delta\ndata: {"content":""}\n\n'
'event: done\ndata: {"model_label":"千问"}\n\n'
)
def handler(request: httpx.Request) -> httpx.Response:
requests.append(request)
return httpx.Response(
200,
headers={"content-type": "text/event-stream; charset=utf-8"},
text=content,
)
client = ApiClient(
"https://example.test",
token="stream-token",
transport=httpx.MockTransport(handler),
)
events = list(
client.post_event_stream(
"tcm.diagnosis/aiAssistantStream",
{"id": 501, "task": "custom", "prompt": "如何辨证?"},
)
)
client.close()
assert [event["event"] for event in events] == ["start", "delta", "delta", "done"]
assert [event["data"] for event in events[1:3]] == [
{"content": ""},
{"content": ""},
]
request = requests[0]
assert request.headers["accept"] == "text/event-stream"
assert request.headers["token"] == "stream-token"
assert str(request.url).endswith("/adminapi/tcm.diagnosis/aiAssistantStream")
assert json.loads(request.content) == {
"id": 501,
"task": "custom",
"prompt": "如何辨证?",
}
def test_multipart_post_lets_httpx_set_boundary_and_sends_form_fields(
tmp_path: Path,
) -> None: