mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-03 01:40:21 +08:00
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>
This commit is contained in:
39
tests/services/test_admin_provider_defaults.py
Normal file
39
tests/services/test_admin_provider_defaults.py
Normal file
@@ -0,0 +1,39 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
from src.api.admin.providers.routes import (
|
||||
_merge_claude_code_advanced_config,
|
||||
_should_enable_format_conversion_by_default,
|
||||
)
|
||||
from src.core.exceptions import InvalidRequestException
|
||||
|
||||
|
||||
def test_claude_code_defaults_format_conversion_enabled() -> None:
|
||||
assert _should_enable_format_conversion_by_default("claude_code") is True
|
||||
|
||||
|
||||
def test_custom_defaults_format_conversion_disabled() -> None:
|
||||
assert _should_enable_format_conversion_by_default("custom") is False
|
||||
|
||||
|
||||
def test_merge_claude_code_advanced_clears_stale_config_for_non_claude_provider() -> None:
|
||||
merged, changed = _merge_claude_code_advanced_config(
|
||||
provider_type="custom",
|
||||
provider_config={"foo": "bar", "claude_code_advanced": {"max_sessions": 9}},
|
||||
claude_code_advanced=None,
|
||||
claude_advanced_in_payload=False,
|
||||
)
|
||||
|
||||
assert merged == {"foo": "bar"}
|
||||
assert changed is True
|
||||
|
||||
|
||||
def test_merge_claude_code_advanced_rejects_non_claude_payload() -> None:
|
||||
with pytest.raises(InvalidRequestException):
|
||||
_merge_claude_code_advanced_config(
|
||||
provider_type="custom",
|
||||
provider_config={},
|
||||
claude_code_advanced={"max_sessions": 9},
|
||||
claude_advanced_in_payload=True,
|
||||
)
|
||||
Reference in New Issue
Block a user