Skip to content

Commit 0ed3bdc

Browse files
committed
test: add test for force exit API logic
1 parent 8af0631 commit 0ed3bdc

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

tests/rpc/test_rpc_apiserver.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1852,9 +1852,35 @@ def test_api_forceexit(botclient, mocker, ticker, fee, markets):
18521852
Trade.rollback()
18531853

18541854
trade = Trade.get_trades([Trade.id == 5]).first()
1855+
last_order = trade.orders[-1]
1856+
1857+
assert last_order.side == "sell"
1858+
assert last_order.status == "closed"
1859+
assert last_order.order_type == "market"
1860+
assert last_order.amount == 23
18551861
assert pytest.approx(trade.amount) == 100
18561862
assert trade.is_open is True
18571863

1864+
# Test with explicit price
1865+
rc = client_post(
1866+
client,
1867+
f"{BASE_URI}/forceexit",
1868+
data={"tradeid": "5", "ordertype": "limit", "amount": 25, "price": 0.12345},
1869+
)
1870+
assert_response(rc)
1871+
assert rc.json() == {"result": "Created exit order for trade 5."}
1872+
Trade.rollback()
1873+
1874+
trade = Trade.get_trades([Trade.id == 5]).first()
1875+
last_order = trade.orders[-1]
1876+
assert last_order.status == "closed"
1877+
assert last_order.order_type == "limit"
1878+
assert pytest.approx(last_order.safe_price) == 0.12345
1879+
assert pytest.approx(last_order.amount) == 25
1880+
1881+
assert pytest.approx(trade.amount) == 75
1882+
assert trade.is_open is True
1883+
18581884
rc = client_post(client, f"{BASE_URI}/forceexit", data={"tradeid": "5"})
18591885
assert_response(rc)
18601886
assert rc.json() == {"result": "Created exit order for trade 5."}

0 commit comments

Comments
 (0)