fix: 中控改委托后同步计划价并去重条件单展示
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
"""中控条件单列表:子代理与 Flask exchange_tpsl 合并去重。"""
|
||||
|
||||
from manual_trading_hub.hub import _merge_conditional_orders_no_dup
|
||||
from manual_trading_hub.hub import _merge_conditional_orders_no_dup, _merge_flask_exchange_tpsl
|
||||
|
||||
|
||||
def test_merge_skips_duplicate_trigger_prices():
|
||||
@@ -30,3 +30,38 @@ def test_merge_skips_duplicate_trigger_prices():
|
||||
def test_merge_uses_extra_when_existing_empty():
|
||||
extra = [{"id": "1", "label": "止损 57", "trigger_price": 57}]
|
||||
assert _merge_conditional_orders_no_dup([], extra) == extra
|
||||
|
||||
|
||||
def test_merge_flask_skips_duplicate_sl_when_agent_has_both():
|
||||
agent_row = {
|
||||
"agent": {
|
||||
"positions": [
|
||||
{
|
||||
"symbol": "SOL/USDT:USDT",
|
||||
"side": "short",
|
||||
"conditional_orders": [
|
||||
{"label": "止盈 76", "trigger_price": 76, "algo_id": "1"},
|
||||
{"label": "止损 84.1", "trigger_price": 84.1, "algo_id": "1"},
|
||||
{"label": "止损", "trigger_price": 84.1},
|
||||
],
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
snap = {
|
||||
"order_prices": [
|
||||
{
|
||||
"symbol": "SOL/USDT:USDT",
|
||||
"side": "short",
|
||||
"exchange_tpsl": {
|
||||
"sl": {"trigger_price": 84.1, "order_id": "old"},
|
||||
"tp": {"trigger_price": 76, "order_id": "old"},
|
||||
},
|
||||
}
|
||||
]
|
||||
}
|
||||
_merge_flask_exchange_tpsl(agent_row, snap, None)
|
||||
cond = agent_row["agent"]["positions"][0]["conditional_orders"]
|
||||
sl_rows = [o for o in cond if "止损" in (o.get("label") or "")]
|
||||
assert len(sl_rows) == 1
|
||||
assert len(cond) == 2
|
||||
|
||||
Reference in New Issue
Block a user