alphax/tests/test_tracker_terminal_action_guard.py
2026-05-13 22:49:47 +08:00

50 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import os
import sys
PROJECT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
if PROJECT_DIR not in sys.path:
sys.path.insert(0, PROJECT_DIR)
from app.db import altcoin_db
from legacy import price_tracker_ws
def test_terminal_recommendation_action_status_cannot_be_overwritten_by_entry_signal(monkeypatch, tmp_path):
db_path = tmp_path / "altcoin_monitor.db"
monkeypatch.setattr(altcoin_db, "DB_PATH", str(db_path))
altcoin_db.init_db()
rec_id = altcoin_db.create_recommendation(
symbol="NOT/USDT",
rec_state="爆发",
rec_score=10,
entry_price=0.000619,
stop_loss=0.000521,
tp1=0.000684,
tp2=0.000726,
entry_plan={"entry_action": "等回踩", "entry_price": 0.000628},
)
altcoin_db.update_recommendation_tracking(rec_id, 0.000685)
# 即使后续动态入场逻辑误传“可即刻买入”DB 层也必须保持止盈状态。
altcoin_db.update_recommendation_action_status(rec_id, "可即刻买入")
rows = altcoin_db.get_all_recommendations(limit=10)
rec = next(r for r in rows if r["id"] == rec_id)
assert rec["status"] == "hit_tp1"
assert rec["action_status"] == "止盈1"
assert rec["execution_status"] == "completed"
def test_ws_tracker_does_not_emit_entry_signal_for_closed_recommendation():
rec = {
"status": "hit_tp1",
"entry_price": 0.000619,
"stop_loss": 0.000521,
"tp1": 0.000684,
"tp2": 0.000726,
"entry_plan": {"entry_action": "等回踩", "entry_price": 0.000628},
"action_status": "止盈1",
}
assert price_tracker_ws.check_triggers("NOT/USDT", rec, 0.000628) is None