Files
Aether/tests/services/test_provider_summary_claude_code_advanced.py
fawney19 579b5e4623 feat(provider): 增加 Claude Code 适配器、高级配置能力与 OAuth 账号类型统一解析
- 新增 Claude Code provider adapter (context, envelope, plugin, constants)
- 扩展 provider admin 路由,支持 Claude Code 高级配置 (CRUD)
- 统一 OAuth 账号类型解析逻辑,前后端对齐
- 重构 BatchAssignModelsDialog / ModelMappingDialog,简化组件逻辑
- handler 基类增强: request_builder 支持 Claude Code 信封格式
- CLI stream/sync mixin 适配 Claude Code 流式与同步模式
- 扩展 candidate builder / failover / scheduler 对 Claude Code 的支持
- 前端增加请求时间线可视化 (HorizontalRequestTimeline)
- 补充 Claude Code envelope / runtime controls / distributed sessions 等测试

Closes #183
Closes #185

Co-Authored-By: AAEE86 <ppk0227@hotmail.com>
2026-02-27 13:54:46 +08:00

31 lines
1.0 KiB
Python

from __future__ import annotations
from src.api.admin.providers.summary import _extract_claude_code_advanced_from_config
from src.models.admin_requests import ClaudeCodeAdvancedConfig
def test_extract_claude_code_advanced_valid_dict() -> None:
config = {"claude_code_advanced": {"max_sessions": 12}}
parsed = _extract_claude_code_advanced_from_config(config, provider_id="provider-1")
assert isinstance(parsed, ClaudeCodeAdvancedConfig)
assert parsed.max_sessions == 12
assert parsed.session_idle_timeout_minutes == 5
def test_extract_claude_code_advanced_invalid_type_returns_none() -> None:
config = {"claude_code_advanced": "not-a-dict"}
parsed = _extract_claude_code_advanced_from_config(config, provider_id="provider-1")
assert parsed is None
def test_extract_claude_code_advanced_invalid_payload_returns_none() -> None:
config = {"claude_code_advanced": {"max_sessions": 0}}
parsed = _extract_claude_code_advanced_from_config(config, provider_id="provider-1")
assert parsed is None