29 lines
992 B
Python
29 lines
992 B
Python
from app.services.altcoin_confirm import _apply_market_risk_entry_gate
|
|
|
|
|
|
def test_market_risk_gate_blocks_executable_action_when_critical():
|
|
signals = ["15min即刻入场信号"]
|
|
plan, reason = _apply_market_risk_entry_gate(
|
|
{"entry_action": "可即刻买入", "entry_price": 1.0},
|
|
signals,
|
|
{"risk_level": "critical", "position_multiplier": 0.0},
|
|
)
|
|
|
|
assert plan["entry_action"] == "观察"
|
|
assert plan["market_risk_gate"]["blocked_action"] == "可即刻买入"
|
|
assert "暂停新开仓" in reason
|
|
assert any("市场风控闸门" in sig for sig in signals)
|
|
|
|
|
|
def test_market_risk_gate_keeps_observation_action_visible():
|
|
signals = []
|
|
plan, reason = _apply_market_risk_entry_gate(
|
|
{"entry_action": "观察", "entry_price": 1.0},
|
|
signals,
|
|
{"risk_level": "critical", "position_multiplier": 0.0},
|
|
)
|
|
|
|
assert plan["entry_action"] == "观察"
|
|
assert "market_risk_gate" not in plan
|
|
assert reason == ""
|