48 lines
2.4 KiB
Python
48 lines
2.4 KiB
Python
"""Оба пути пробы принимают текст в content или reasoning_content."""
|
|
import sqlite3
|
|
|
|
|
|
def test_cron_accepts_reasoning_only(core, omni_server):
|
|
omni_server.set_completions(content=None, reasoning_content=" thinking ", finish_reason="length",
|
|
usage={"prompt_tokens": 12, "completion_tokens": 5, "total_tokens": 17})
|
|
ok, latency, error, usage = core.probe.check_model("zai/test-model-a")
|
|
assert ok is True and error is None
|
|
assert usage["total_tokens"] == 17
|
|
request = omni_server.requests[-1]["body"]
|
|
assert request["reasoning_effort"] == "none"
|
|
assert request["max_tokens"] == 5
|
|
|
|
|
|
def test_manual_accepts_reasoning_only_and_persists_usage(core, omni_server):
|
|
omni_server.set_completions(content=None, reasoning_content="thinking", finish_reason="length",
|
|
usage={"prompt_tokens": 12, "completion_tokens": 5, "total_tokens": 17})
|
|
response = core.client.get("/api/check/zai/test-model-a")
|
|
assert response.status_code == 200
|
|
assert response.json()["ok"] is True
|
|
assert omni_server.requests[-1]["body"]["reasoning_effort"] == "none"
|
|
db = sqlite3.connect(core.db_path)
|
|
row = db.execute("SELECT ok,error,total_tokens FROM checks ORDER BY id DESC LIMIT 1").fetchone()
|
|
db.close()
|
|
assert row == (1, None, 17)
|
|
|
|
|
|
def test_both_fields_empty_are_not_success(core, omni_server):
|
|
omni_server.set_completions(content=" ", reasoning_content="\t", finish_reason="length",
|
|
usage={"prompt_tokens": 12, "completion_tokens": 5, "total_tokens": 17})
|
|
ok, _, error, usage = core.probe.check_model("zai/test-model-a")
|
|
assert ok is False
|
|
assert error == "Empty content and reasoning (finish_reason=length)"
|
|
assert usage["total_tokens"] == 17
|
|
response = core.client.get("/api/check/zai/test-model-a")
|
|
assert response.json()["ok"] is False
|
|
db = sqlite3.connect(core.db_path)
|
|
row = db.execute("SELECT ok,error,total_tokens FROM checks ORDER BY id DESC LIMIT 1").fetchone()
|
|
db.close()
|
|
assert row == (0, "Empty content and reasoning (finish_reason=length)", 17)
|
|
|
|
|
|
def test_text_response_still_succeeds(core, omni_server):
|
|
omni_server.set_completions(content=" 4 ", reasoning_content=None)
|
|
assert core.probe.check_model("zai/test-model-a")[0] is True
|
|
assert core.client.get("/api/check/zai/test-model-a").json()["ok"] is True
|