后端: - 拆分出 agent_service, runtime_service, trading_service, news_service - Gateway 模块化拆分 (gateway_*.py) - 添加 domains/ 领域层 - 新增 control_client, runtime_client - 更新 start-dev.sh 支持 split 服务模式 前端: - 完善 API 服务层 (newsApi, tradingApi) - 更新 vite.config.js - Explain 组件优化 测试: - 添加多个服务 app 测试 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""Tests for provider router fallback behavior."""
|
|
|
|
from backend.data.provider_router import DataProviderRouter
|
|
from backend.config.data_config import reset_config
|
|
|
|
|
|
def test_router_includes_local_csv_fallback(monkeypatch):
|
|
monkeypatch.delenv("FINNHUB_API_KEY", raising=False)
|
|
monkeypatch.delenv("FINANCIAL_DATASETS_API_KEY", raising=False)
|
|
monkeypatch.delenv("FIN_DATA_SOURCE", raising=False)
|
|
monkeypatch.delenv("ENABLED_DATA_SOURCES", raising=False)
|
|
reset_config()
|
|
|
|
router = DataProviderRouter()
|
|
|
|
assert router.price_sources() == ["local_csv"]
|
|
|
|
|
|
def test_router_allows_yfinance_when_enabled(monkeypatch):
|
|
monkeypatch.setenv("FIN_DATA_SOURCE", "yfinance")
|
|
monkeypatch.setenv("ENABLED_DATA_SOURCES", "yfinance,local_csv")
|
|
monkeypatch.delenv("FINNHUB_API_KEY", raising=False)
|
|
monkeypatch.delenv("FINANCIAL_DATASETS_API_KEY", raising=False)
|
|
reset_config()
|
|
|
|
router = DataProviderRouter()
|
|
|
|
assert router.price_sources() == ["yfinance", "local_csv"]
|
|
assert router.api_sources() == ["yfinance"]
|