mirror of
https://github.com/ZhuLinsen/daily_stock_analysis
synced 2026-09-20 10:53:33 +08:00
* fix: unify report action display * fix(review-feedback-1982): add Korean action labels or fall back before returning display action * fix(review-feedback-1982): Derive signal metadata from resolved actions * fix(review-feedback-1982): Derive history signal metadata from resolved actions * fix(review-feedback-1982): Derive renderer emojis from resolved actions * fix(review-feedback-1982): src/notification.py:2838:build stock summary 先得到 display * fix(review-feedback-1982): 将 PR 正文同步到最新 head,确保范围、验证结果与实际 diff 一致 * fix(review-feedback-1982): 将 GitHub PR 正文同步到当前 head,并修正 docs/CHANGELOG.md 中不准确的审查过程记录
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
from datetime import datetime
|
|
from types import SimpleNamespace
|
|
|
|
from src.services.history_comparison_service import _record_to_signal
|
|
|
|
|
|
def _record(**overrides):
|
|
values = {
|
|
"created_at": datetime(2026, 7, 11, 9, 0),
|
|
"query_id": "q1",
|
|
"sentiment_score": 72,
|
|
"operation_advice": "Hold",
|
|
"trend_prediction": "Bullish",
|
|
"report_type": "stock",
|
|
"report_language": "en",
|
|
"raw_result": "{}",
|
|
}
|
|
values.update(overrides)
|
|
return SimpleNamespace(**values)
|
|
|
|
|
|
def test_history_signal_uses_score_aligned_display_action() -> None:
|
|
signal = _record_to_signal(_record(), report_language="en")
|
|
|
|
assert signal["action"] == "buy"
|
|
assert signal["action_label"] == "Buy"
|
|
|
|
|
|
def test_history_signal_preserves_applied_guardrail() -> None:
|
|
signal = _record_to_signal(
|
|
_record(
|
|
raw_result=(
|
|
'{"action":"hold","dashboard":{"decision_stability":'
|
|
'{"applied":true,"reason":"Wait for confirmation"}}}'
|
|
)
|
|
),
|
|
report_language="en",
|
|
)
|
|
|
|
assert signal["action"] == "hold"
|
|
assert signal["action_label"] == "Hold"
|