mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-02 17:30:23 +08:00
feat(pool): 增加 OAuth 账号池管理功能
- 新增 pool manager / strategy / health_policy / cost_tracker / redis_ops 等核心模块 - 新增 pool admin API 路由与 schemas - 新增 OAuth 账号类型解析 (oauth_plan) - 前端增加 PoolManagement 页面、PoolConfigDialog、PoolImportDialog、PoolStatusCard 组件 - 补充 pool config / cost tracker / health policy / manager / strategy / trace 等测试
This commit is contained in:
54
tests/services/test_pool_config_backward_compat.py
Normal file
54
tests/services/test_pool_config_backward_compat.py
Normal file
@@ -0,0 +1,54 @@
|
||||
"""Tests for pool config backward compatibility.
|
||||
|
||||
Verifies that:
|
||||
1. Only ``pool_advanced`` key activates pool mode
|
||||
2. ``claude_code_advanced`` alone does NOT activate pool mode
|
||||
3. Old import paths via shim modules still resolve correctly
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from src.services.provider.pool.config import PoolConfig, parse_pool_config
|
||||
|
||||
|
||||
def test_pool_advanced_key_activates_pool() -> None:
|
||||
"""pool_advanced key activates pool mode."""
|
||||
cfg = parse_pool_config({"pool_advanced": {"sticky_session_ttl_seconds": 999}})
|
||||
assert cfg is not None
|
||||
assert cfg.sticky_session_ttl_seconds == 999
|
||||
|
||||
|
||||
def test_claude_code_advanced_alone_does_not_activate_pool() -> None:
|
||||
"""claude_code_advanced alone does NOT activate pool mode."""
|
||||
cfg = parse_pool_config({"claude_code_advanced": {"lru_enabled": False}})
|
||||
assert cfg is None
|
||||
|
||||
|
||||
def test_no_config_returns_none() -> None:
|
||||
cfg = parse_pool_config({"other": 1})
|
||||
assert cfg is None
|
||||
|
||||
|
||||
def test_empty_pool_advanced_returns_defaults() -> None:
|
||||
cfg = parse_pool_config({"pool_advanced": {}})
|
||||
assert cfg is not None
|
||||
defaults = PoolConfig()
|
||||
assert cfg.sticky_session_ttl_seconds == defaults.sticky_session_ttl_seconds
|
||||
assert cfg.lru_enabled is True
|
||||
|
||||
|
||||
def test_shim_imports_resolve() -> None:
|
||||
"""Old import paths through shim modules still work."""
|
||||
from src.services.provider.adapters.claude_code.pool_config import PoolConfig as ShimPoolConfig
|
||||
from src.services.provider.adapters.claude_code.pool_config import (
|
||||
parse_pool_config as shim_parse,
|
||||
)
|
||||
from src.services.provider.adapters.claude_code.pool_manager import (
|
||||
ClaudeCodePoolManager,
|
||||
)
|
||||
from src.services.provider.pool.manager import PoolManager
|
||||
|
||||
# ShimPoolConfig should be the same class
|
||||
assert ShimPoolConfig is PoolConfig
|
||||
assert shim_parse is parse_pool_config
|
||||
assert ClaudeCodePoolManager is PoolManager
|
||||
Reference in New Issue
Block a user