feat(nemotron): per-task timeout,DIAGNOSE 使用獨立 timeout 設定 (P0)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
40
apps/api/tests/test_p0_diagnose_routing.py
Normal file
40
apps/api/tests/test_p0_diagnose_routing.py
Normal 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()
|
||||
Reference in New Issue
Block a user