mirror of
https://ghfast.top/https://github.com/aeroxw/tick-stock-panel.git
synced 2026-09-12 20:14:16 +08:00
- 数据路由: get_name_map 合并指数维表; get_enriched_latest_asset("index") 缓存+flush/merge 分支; daily-batch 按资产分组
- 自选: watchlist_enriched 指数分支 + 行级 asset_type 标注
- 监控: MonitorRuleEngine 第三轮指数评估 (signal/price); 指数实时焐热复刻 ETF flush; Free档自选实时资产分流; 规则校验 (禁 strategy/market/ladder/分时信号)
- 隔离: _resolve_universe 过滤指数防污染股票日K/分钟K; 指数轮 reset_strategy_results=False; 策略/回测/screener 零改动
- AI 分析: prompt 指数无财务文案
20 lines
754 B
Python
20 lines
754 B
Python
"""Free 档自选实时资产分流测试。"""
|
|
from app.services.quote_service import QuoteService
|
|
|
|
|
|
def test_split_records_by_asset():
|
|
records = [
|
|
{"symbol": "600000.SH"}, {"symbol": "510300.SH"}, {"symbol": "000001.SH"},
|
|
]
|
|
index, etf, stock = QuoteService._split_records_by_asset(
|
|
records, {"000001.SH"}, {"510300.SH"},
|
|
)
|
|
assert [r["symbol"] for r in index] == ["000001.SH"]
|
|
assert [r["symbol"] for r in etf] == ["510300.SH"]
|
|
assert [r["symbol"] for r in stock] == ["600000.SH"]
|
|
# etf 优先于 index (与 resolve_asset_type 判定顺序一致)
|
|
index2, etf2, stock2 = QuoteService._split_records_by_asset(
|
|
[{"symbol": "X"}], {"X"}, {"X"},
|
|
)
|
|
assert etf2 and not index2 and not stock2
|