mirror of
https://github.com/deepseek-ai/deepseek-harness.git
synced 2026-09-09 04:02:35 +00:00
Merge commit '0d361e6eede9e8a739e776949aa7d5e3de4472da' into codex/subprocess-native-containment
# Conflicts: # snapshots/session/cordis-inspect-jsdoc/session.v2.jsonl
This commit is contained in:
@@ -71,3 +71,194 @@ def test_mcp_smoke_accepts_the_external_server_result() -> None:
|
||||
for chunk in chunks
|
||||
for choice in chunk.get("choices", [])
|
||||
)
|
||||
|
||||
|
||||
def test_snapshot_comparison_normalizes_only_session_generation_provenance() -> None:
|
||||
normalize = SMOKE["normalize_session_format_comparison"]
|
||||
expected = {
|
||||
"header": {"type": "session", "version": 0, "otherVersion": 7},
|
||||
"accepted": {
|
||||
"type": "session-log-deepseek/delivery-accepted",
|
||||
"data": {"sessionId": "s", "throughSeq": 4},
|
||||
},
|
||||
"source": {
|
||||
"kind": "session-reference",
|
||||
"references": [{"sessionId": "other", "capturedThroughSeq": 8}],
|
||||
},
|
||||
}
|
||||
actual = {
|
||||
"header": {"type": "session", "version": 1, "otherVersion": 7},
|
||||
"accepted": {
|
||||
"type": "session-log-deepseek/delivery-accepted",
|
||||
"data": {"sessionId": "s", "sessionFormatVersion": 1, "throughSeq": 4},
|
||||
},
|
||||
"source": {
|
||||
"kind": "session-reference",
|
||||
"references": [{
|
||||
"sessionId": "other",
|
||||
"capturedFormatVersion": 1,
|
||||
"capturedThroughSeq": 8,
|
||||
}],
|
||||
},
|
||||
}
|
||||
|
||||
assert normalize(expected) == normalize(actual)
|
||||
assert normalize(expected)["header"]["otherVersion"] == 7
|
||||
|
||||
|
||||
def test_snapshot_value_normalizes_embedded_assistant_stream_timing() -> None:
|
||||
normalize = SMOKE["normalize_snapshot_value"]
|
||||
event = {
|
||||
"type": "assistant/message",
|
||||
"seq": 4,
|
||||
"time": 100,
|
||||
"data": {
|
||||
"stream": [
|
||||
{"type": "chunk", "time": 101, "chunk": {"type": "finish"}},
|
||||
{"type": "text-chunks", "time0": 102, "dt": [1, 2], "texts": ["a", "b", "c"]},
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
normalized = normalize(event, [])
|
||||
|
||||
assert normalized["time"] == 0
|
||||
assert normalized["data"]["stream"] == [
|
||||
{"type": "chunk", "time": 0, "chunk": {"type": "finish"}},
|
||||
{"type": "text-chunks", "time0": 0, "dt": [0, 0], "texts": ["a", "b", "c"]},
|
||||
]
|
||||
|
||||
|
||||
def test_snapshot_comparison_expands_embedded_assistant_streams() -> None:
|
||||
normalize = SMOKE["normalize_session_format_comparison"]
|
||||
expected = [
|
||||
{
|
||||
"type": "assistant/chunk",
|
||||
"seq": 4,
|
||||
"time": 0,
|
||||
"data": {"turn": 1, "step": 1, "chunk": {
|
||||
"type": "text-delta", "index": 0, "text": "done",
|
||||
}},
|
||||
},
|
||||
{
|
||||
"type": "assistant/message",
|
||||
"seq": 5,
|
||||
"time": 0,
|
||||
"data": {"turn": 1, "step": 1, "message": {"role": "assistant"}},
|
||||
"sourceEventSeqs": [4],
|
||||
"surfaceOp": "append",
|
||||
},
|
||||
]
|
||||
actual = [{
|
||||
"type": "assistant/message",
|
||||
"seq": 4,
|
||||
"time": 0,
|
||||
"data": {
|
||||
"turn": 1,
|
||||
"step": 1,
|
||||
"message": {"role": "assistant"},
|
||||
"stream": [{
|
||||
"type": "text-chunks", "time0": 0, "index": 0, "dt": [], "texts": ["done"],
|
||||
}],
|
||||
},
|
||||
"surfaceOp": "append",
|
||||
}]
|
||||
|
||||
assert normalize(actual, 2) == normalize(expected, 1)
|
||||
|
||||
tool_result = {
|
||||
"type": "tool/result",
|
||||
"data": {"turn": 1, "step": 1},
|
||||
"sourceEventSeqs": [4],
|
||||
}
|
||||
assert normalize(tool_result, 1)["sourceEventSeqs"] == [4]
|
||||
assert normalize(tool_result, 2)["sourceEventSeqs"] == [4]
|
||||
|
||||
|
||||
def test_snapshot_stream_expands_reasoning_and_tool_call_records() -> None:
|
||||
expand = SMOKE["expand_snapshot_stream_member"]
|
||||
|
||||
assert expand({
|
||||
"type": "reasoning-chunks", "time0": 0, "index": 1,
|
||||
"dt": [], "texts": ["think"],
|
||||
}) == [{"type": "reasoning-delta", "index": 1, "text": "think"}]
|
||||
assert expand({
|
||||
"type": "tool-call-chunks", "time0": 0, "index": 2,
|
||||
"id": "call-1", "name": "read", "dt": [1], "args": ["{", "}"],
|
||||
}) == [
|
||||
{"type": "tool-call-delta", "index": 2, "id": "call-1", "name": "read", "argumentsDelta": "{"},
|
||||
{"type": "tool-call-delta", "index": 2, "id": "call-1", "name": "read", "argumentsDelta": "}"},
|
||||
]
|
||||
|
||||
|
||||
def test_snapshot_file_builder_order_is_checked_outside_update_mode(tmp_path: Path) -> None:
|
||||
compare = SMOKE["compare_snapshot_files"]
|
||||
|
||||
with pytest.raises(AssertionError, match="snapshot builder produced"):
|
||||
compare({}, False, tmp_path, ("result.json",))
|
||||
|
||||
|
||||
def test_snapshot_comparison_expands_sdk_wrapped_attempts() -> None:
|
||||
normalize = SMOKE["normalize_session_format_comparison"]
|
||||
actual = [{
|
||||
"method": "session.event",
|
||||
"payload": {
|
||||
"sessionId": "s",
|
||||
"event": {
|
||||
"type": "assistant/attempt",
|
||||
"seq": 7,
|
||||
"time": 0,
|
||||
"data": {
|
||||
"turn": 1,
|
||||
"step": 1,
|
||||
"stream": [{"type": "chunk", "time": 0, "chunk": {"type": "finish"}}],
|
||||
},
|
||||
},
|
||||
},
|
||||
}]
|
||||
|
||||
assert normalize(actual) == [{
|
||||
"method": "session.event",
|
||||
"payload": {
|
||||
"sessionId": "s",
|
||||
"event": {
|
||||
"type": "assistant/chunk",
|
||||
"data": {"turn": 1, "step": 1, "chunk": {"type": "finish"}},
|
||||
},
|
||||
},
|
||||
}]
|
||||
|
||||
|
||||
def test_snapshot_generation_names_select_highest_role_without_double_counting(
|
||||
tmp_path: Path,
|
||||
) -> None:
|
||||
render = SMOKE["snapshot_session_filename"]
|
||||
select = SMOKE["selected_snapshot_session_files"]
|
||||
assert render(0, 0) == "session.jsonl"
|
||||
assert render(0, 2) == "session.v2.jsonl"
|
||||
assert render(3, 0) == "session.3.jsonl"
|
||||
assert render(3, 2) == "session.3.v2.jsonl"
|
||||
|
||||
(tmp_path / "session.jsonl").write_text(
|
||||
'{"type":"session","version":0}\n', encoding="utf-8",
|
||||
)
|
||||
(tmp_path / "session.v1.jsonl").write_text(
|
||||
'{"type":"session","version":1}\n', encoding="utf-8",
|
||||
)
|
||||
(tmp_path / "session.1.jsonl").write_text(
|
||||
'{"type":"session","version":0}\n', encoding="utf-8",
|
||||
)
|
||||
|
||||
assert {index: path.name for index, path in select(tmp_path).items()} == {
|
||||
0: "session.v1.jsonl",
|
||||
1: "session.1.jsonl",
|
||||
}
|
||||
|
||||
|
||||
def test_snapshot_generation_filename_must_match_header(tmp_path: Path) -> None:
|
||||
(tmp_path / "session.v1.jsonl").write_text(
|
||||
'{"type":"session","version":0}\n', encoding="utf-8",
|
||||
)
|
||||
|
||||
with pytest.raises(AssertionError, match="filename declares Session format v1"):
|
||||
SMOKE["selected_snapshot_session_files"](tmp_path)
|
||||
|
||||
Reference in New Issue
Block a user