feat(nemotron): per-task timeout,DIAGNOSE 使用獨立 timeout 設定 (P0)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
OG T
2026-04-04 16:58:23 +08:00
parent 3455044457
commit ffd679f5d3

View File

@@ -0,0 +1,40 @@
"""
P0 DIAGNOSE Privacy-First Routing Tests
========================================
測試 AIRouter local chain 隔離 + DIAGNOSE timeout 路由
建立時間: 2026-04-04 (台北時區)
建立者: Claude Code (P0 DIAGNOSE Privacy-First)
"""
import os
os.environ.setdefault("MOCK_MODE", "true")
import pytest
from unittest.mock import AsyncMock, MagicMock, patch
class TestNemotronPerTaskTimeout:
"""Nemotron 支援 per-task timeout"""
@pytest.mark.asyncio
async def test_diagnose_uses_diagnose_timeout(self):
"""DIAGNOSE context 應使用 NEMOTRON_DIAGNOSE_TIMEOUT_SECONDS"""
from src.services.ai_providers.nemotron import NemotronProvider
provider = NemotronProvider()
# 建立 mock nvidia provider
mock_nvidia = MagicMock()
mock_result = MagicMock()
mock_result.tool_calls = []
mock_nvidia.tool_call = AsyncMock(return_value=mock_result)
with patch.object(provider, '_get_nvidia', return_value=mock_nvidia):
result = await provider.analyze(
prompt="測試診斷",
context={"task_type": "diagnose"},
)
assert result.success is True
mock_nvidia.tool_call.assert_called_once()