| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- from __future__ import annotations
- import runpy
- from pathlib import Path
- import pytest
- ROOT = Path(__file__).resolve().parents[3]
- SMOKE = runpy.run_path(ROOT / "scripts" / "smoke-python-runtime.py")
- @pytest.mark.parametrize(
- ("prompt_name", "expected"),
- [
- ("SNAPSHOT_DIRECT_CHILD_PROMPT", "DIRECT_CHILD_OK"),
- ("SNAPSHOT_WORKFLOW_CHILD_PROMPT", "WORKFLOW_CHILD_OK"),
- ],
- )
- def test_child_prompt_precedes_runtime_context(prompt_name: str, expected: str) -> None:
- chunks = SMOKE["completion_chunks"]({
- "messages": [
- {"role": "user", "content": SMOKE[prompt_name]},
- {"role": "user", "content": "Current runtime context"},
- ],
- })
- assert any(
- choice.get("delta", {}).get("content") == expected
- for chunk in chunks
- for choice in chunk.get("choices", [])
- )
- def test_mcp_smoke_requests_the_discovered_tool() -> None:
- chunks = SMOKE["completion_chunks"]({
- "messages": [{"role": "user", "content": SMOKE["MCP_PROMPT"]}],
- "tools": [{"type": "function", "function": {"name": "mcp__fixture__add"}}],
- })
- calls = [
- call
- for chunk in chunks
- for choice in chunk.get("choices", [])
- for call in choice.get("delta", {}).get("tool_calls", [])
- ]
- assert calls[0]["function"] == {
- "name": "mcp__fixture__add",
- "arguments": '{"a": 19, "b": 23}',
- }
- def test_mcp_smoke_accepts_the_external_server_result() -> None:
- chunks = SMOKE["completion_chunks"]({
- "messages": [
- {"role": "user", "content": SMOKE["MCP_PROMPT"]},
- {
- "role": "assistant",
- "tool_calls": [{
- "id": "mcp-add",
- "type": "function",
- "function": {"name": "mcp__fixture__add", "arguments": '{}'},
- }],
- },
- {"role": "tool", "tool_call_id": "mcp-add", "content": "42"},
- ],
- })
- assert any(
- choice.get("delta", {}).get("content") == SMOKE["MCP_TEXT"]
- 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_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)
|