Skip to content

Commit 2204803

Browse files
committed
test: add explicit test for dry_order_filled
1 parent 2c6ff3f commit 2204803

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed

tests/exchange/test_exchange.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1168,6 +1168,58 @@ def test__dry_is_price_crossed_without_orderbook_support(default_conf, mocker):
11681168
assert exchange.fetch_l2_order_book.call_count == 0
11691169

11701170

1171+
@pytest.mark.parametrize(
1172+
"crossed,immediate,side,amount,expected_status,expected_fee_rate,expected_calls,taker_or_maker",
1173+
[
1174+
(True, True, "buy", 2.0, "closed", 0.005, 1, "taker"),
1175+
(True, False, "sell", 1.5, "closed", 0.005, 1, "maker"),
1176+
(False, False, "sell", 1.0, "open", None, 0, None),
1177+
],
1178+
)
1179+
def test_check_dry_limit_order_filled_parametrized(
1180+
default_conf,
1181+
mocker,
1182+
crossed,
1183+
immediate,
1184+
side,
1185+
amount,
1186+
expected_status,
1187+
expected_fee_rate,
1188+
expected_calls,
1189+
taker_or_maker,
1190+
):
1191+
exchange = get_patched_exchange(mocker, default_conf)
1192+
mocker.patch(f"{EXMS}._dry_is_price_crossed", return_value=crossed)
1193+
fee_mock = mocker.patch(f"{EXMS}.get_fee", return_value=0.005)
1194+
1195+
order = {
1196+
"symbol": "LTC/USDT",
1197+
"status": "open",
1198+
"type": "limit",
1199+
"side": side,
1200+
"price": 25.0,
1201+
"amount": amount,
1202+
"filled": 0.0,
1203+
"remaining": amount,
1204+
"cost": 25.0 * amount,
1205+
"fee": None,
1206+
}
1207+
1208+
result = exchange.check_dry_limit_order_filled(order, immediate=immediate)
1209+
1210+
assert result["status"] == expected_status
1211+
if crossed:
1212+
assert result["filled"] == amount
1213+
assert result["remaining"] == 0.0
1214+
assert result["fee"]["rate"] == expected_fee_rate
1215+
fee_mock.assert_called_once_with("LTC/USDT", taker_or_maker=taker_or_maker)
1216+
else:
1217+
assert result["filled"] == 0.0
1218+
assert result["remaining"] == amount
1219+
assert result["fee"] is None
1220+
assert fee_mock.call_count == expected_calls
1221+
1222+
11711223
@pytest.mark.parametrize(
11721224
"side,price,filled,converted",
11731225
[

0 commit comments

Comments
 (0)