fix真盈亏只认卖光收回减买币,禁止权利金指数冒充。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -149,6 +149,49 @@ class AccountPnlSettleTests(unittest.TestCase):
|
||||
self.assertEqual(int(out["total"]), 2)
|
||||
conn.close()
|
||||
|
||||
def test_resolve_true_pnl_prefers_account_then_bridge(self):
|
||||
from lib.options.options_account_pnl_lib import resolve_true_pnl_usdt
|
||||
from lib.options.options_db import init_options_tables
|
||||
from lib.options.options_spot_bridge_lib import ensure_bridge_table
|
||||
|
||||
conn = sqlite3.connect(":memory:")
|
||||
conn.row_factory = sqlite3.Row
|
||||
init_options_tables(conn)
|
||||
ensure_bridge_table(conn)
|
||||
conn.execute(
|
||||
"""
|
||||
INSERT INTO options_spot_bridge(
|
||||
id, underlying, status, budget_usdt, usdt_recovered
|
||||
) VALUES (3, 'ETH', 'closed', 100.0, 160.0)
|
||||
"""
|
||||
)
|
||||
conn.commit()
|
||||
pnl, src = resolve_true_pnl_usdt(
|
||||
conn,
|
||||
trading_usdt_before=500.0,
|
||||
trading_usdt_after=580.0,
|
||||
bridge_id=3,
|
||||
)
|
||||
self.assertEqual(src, "account")
|
||||
self.assertAlmostEqual(float(pnl), 80.0, places=4)
|
||||
pnl2, src2 = resolve_true_pnl_usdt(
|
||||
conn,
|
||||
trading_usdt_before=500.0,
|
||||
trading_usdt_after=None,
|
||||
bridge_id=3,
|
||||
)
|
||||
self.assertEqual(src2, "bridge")
|
||||
self.assertAlmostEqual(float(pnl2), 60.0, places=4)
|
||||
pnl3, src3 = resolve_true_pnl_usdt(
|
||||
conn,
|
||||
trading_usdt_before=None,
|
||||
realized_pnl_usdt=999.0,
|
||||
pnl_settled=1,
|
||||
)
|
||||
self.assertEqual(src3, "none")
|
||||
self.assertIsNone(pnl3)
|
||||
conn.close()
|
||||
|
||||
def test_settle_blocked_when_sellable_coin(self):
|
||||
from lib.options.options_account_pnl_lib import try_settle_after_sellback
|
||||
from lib.options.options_db import init_options_tables
|
||||
|
||||
Reference in New Issue
Block a user