Private
Public Access
0
0

test(deepseek): migrate 6 sites to send_result() (Phase 2.9)

All 6 sites in test_deepseek_provider.py call ai_client.send(...). Each
assertion pattern is slightly different (==, "in", call_args inspection);
migration follows the same pattern: rename to send_result(), add
assert result.ok, and use result.data for the response text.

Changes:
- Rename ai_client.send(...) to ai_client.send_result(...) (6 sites)
- Add assert result.ok (6 sites)
- Replace result == "x" with result.data == "x" (or "x" in result.data)
- Add "from src.result_types import Result" import

7 tests pass (1 unrelated test_deepseek_model_selection + 6 migrated).
This commit is contained in:
2026-06-15 16:59:46 -04:00
parent d9a79efa25
commit 363fe91db0
+24 -17
View File
@@ -1,6 +1,7 @@
import unittest.mock
from unittest.mock import patch, MagicMock
from src import ai_client
from src.result_types import Result
def test_deepseek_model_selection() -> None:
"""
@@ -28,14 +29,15 @@ def test_deepseek_completion_logic(mock_post: MagicMock) -> None:
}
mock_post.return_value = mock_response
result = ai_client.send(md_content="Context", user_message="Hi", base_dir=".")
assert result == "Hello World"
result = ai_client.send_result(md_content="Context", user_message="Hi", base_dir=".")
assert result.ok
assert result.data == "Hello World"
assert mock_post.called
@patch("requests.post")
def test_deepseek_reasoning_logic(mock_post: MagicMock) -> None:
"""
Verifies that reasoning_content is captured and wrapped in <thinking> tags.
"""
@@ -50,10 +52,11 @@ def test_deepseek_reasoning_logic(mock_post: MagicMock) -> None:
}]
}
mock_post.return_value = mock_response
result = ai_client.send(md_content="Context", user_message="Hi", base_dir=".")
assert "<thinking>\nChain of thought\n</thinking>" in result
assert "Final answer" in result
result = ai_client.send_result(md_content="Context", user_message="Hi", base_dir=".")
assert result.ok
assert "<thinking>\nChain of thought\n</thinking>" in result.data
assert "Final answer" in result.data
@patch("requests.post")
def test_deepseek_tool_calling(mock_post: MagicMock) -> None:
@@ -93,8 +96,9 @@ def test_deepseek_tool_calling(mock_post: MagicMock) -> None:
mock_post.side_effect = [mock_resp1, mock_resp2]
mock_dispatch.return_value = "Hello World"
result = ai_client.send(md_content="Context", user_message="Read test.txt", base_dir=".")
assert "File content is: Hello World" in result
result = ai_client.send_result(md_content="Context", user_message="Read test.txt", base_dir=".")
assert result.ok
assert "File content is: Hello World" in result.data
assert mock_dispatch.called
mock_dispatch.assert_called_with("read_file", {"path": "test.txt"})
@@ -119,8 +123,9 @@ def test_deepseek_streaming(mock_post: MagicMock) -> None:
mock_response.iter_lines.return_value = [c.encode('utf-8') for c in chunks]
mock_post.return_value = mock_response
result = ai_client.send(md_content="Context", user_message="Stream test", base_dir=".", stream=True)
assert result == "Hello World"
result = ai_client.send_result(md_content="Context", user_message="Stream test", base_dir=".", stream=True)
assert result.ok
assert result.data == "Hello World"
@patch("requests.post")
def test_deepseek_payload_verification(mock_post: MagicMock) -> None:
@@ -139,11 +144,12 @@ def test_deepseek_payload_verification(mock_post: MagicMock) -> None:
}
mock_post.return_value = mock_response
ai_client.send(md_content="Context", user_message="Message 1", base_dir=".", discussion_history="History")
result = ai_client.send_result(md_content="Context", user_message="Message 1", base_dir=".", discussion_history="History")
assert result.ok
args, kwargs = mock_post.call_args
payload = kwargs["json"]
assert payload["model"] == "deepseek-chat"
assert "tools" in payload
assert len(payload["messages"]) == 2 # system + user
@@ -168,11 +174,12 @@ def test_deepseek_reasoner_payload_verification(mock_post: MagicMock) -> None:
}
mock_post.return_value = mock_response
ai_client.send(md_content="Context", user_message="Message 1", base_dir=".")
result = ai_client.send_result(md_content="Context", user_message="Message 1", base_dir=".")
assert result.ok
args, kwargs = mock_post.call_args
payload = kwargs["json"]
assert payload["model"] == "deepseek-reasoner"
assert "tools" not in payload
assert "temperature" not in payload