Jack1808/Claude_Code
0
1import json2from unittest.mock import MagicMock3 4import pytest5 6from config.nim import NimSettings7from providers.base import ProviderConfig8from providers.common import ContentBlockManager9from providers.nvidia_nim import NvidiaNimProvider10 11 12@pytest.mark.asyncio13async def test_task_tool_interception():14 # Setup provider15 config = ProviderConfig(api_key="test")16 provider = NvidiaNimProvider(config, nim_settings=NimSettings())17 18 # Mock request and sse builder with real ContentBlockManager19 request = MagicMock()20 request.model = "test-model"21 22 sse = MagicMock()23 sse.blocks = ContentBlockManager()24 25 # Tool call data (Task tool)26 tc = {27 "index": 0,28 "id": "tool_123",29 "function": {30 "name": "Task",31 "arguments": json.dumps(32 {33 "description": "test task",34 "prompt": "do something",35 "run_in_background": True,36 }37 ),38 },39 }40 41 # Call the method (consume generator to trigger side effects)42 list(provider._process_tool_call(tc, sse))43 44 # Find the emit_tool_delta call and check args45 calls = sse.emit_tool_delta.call_args_list46 assert len(calls) > 047 args_passed = json.loads(calls[0][0][1])48 assert args_passed["run_in_background"] is False49 50 51if __name__ == "__main__":52 import asyncio53 54 asyncio.run(test_task_tool_interception())55 