Test test_handle_cancel_exit_limit short
This commit is contained in:
+15
-10
@@ -3430,8 +3430,11 @@ def test_handle_cancel_enter_corder_empty(mocker, default_conf_usdt, limit_order
|
|||||||
assert cancel_order_mock.call_count == 1
|
assert cancel_order_mock.call_count == 1
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('is_short', [True, False])
|
||||||
@pytest.mark.parametrize('leverage', [1, 5])
|
@pytest.mark.parametrize('leverage', [1, 5])
|
||||||
def test_handle_cancel_exit_limit(mocker, default_conf_usdt, fee, leverage) -> None:
|
@pytest.mark.parametrize('amount', [2, 50])
|
||||||
|
def test_handle_cancel_exit_limit(mocker, default_conf_usdt, fee, is_short,
|
||||||
|
leverage, amount) -> None:
|
||||||
send_msg_mock = patch_RPCManager(mocker)
|
send_msg_mock = patch_RPCManager(mocker)
|
||||||
patch_exchange(mocker)
|
patch_exchange(mocker)
|
||||||
cancel_order_mock = MagicMock()
|
cancel_order_mock = MagicMock()
|
||||||
@@ -3440,6 +3443,7 @@ def test_handle_cancel_exit_limit(mocker, default_conf_usdt, fee, leverage) -> N
|
|||||||
cancel_order=cancel_order_mock,
|
cancel_order=cancel_order_mock,
|
||||||
)
|
)
|
||||||
entry_price = 0.245441
|
entry_price = 0.245441
|
||||||
|
|
||||||
mocker.patch(f'{EXMS}.get_rate', return_value=entry_price)
|
mocker.patch(f'{EXMS}.get_rate', return_value=entry_price)
|
||||||
mocker.patch(f'{EXMS}.get_min_pair_stake_amount', return_value=0.2)
|
mocker.patch(f'{EXMS}.get_min_pair_stake_amount', return_value=0.2)
|
||||||
|
|
||||||
@@ -3448,8 +3452,8 @@ def test_handle_cancel_exit_limit(mocker, default_conf_usdt, fee, leverage) -> N
|
|||||||
freqtrade = FreqtradeBot(default_conf_usdt)
|
freqtrade = FreqtradeBot(default_conf_usdt)
|
||||||
|
|
||||||
trade = Trade(
|
trade = Trade(
|
||||||
pair='LTC/ETH',
|
pair='LTC/USDT',
|
||||||
amount=2 * leverage,
|
amount=amount * leverage,
|
||||||
exchange='binance',
|
exchange='binance',
|
||||||
open_rate=entry_price,
|
open_rate=entry_price,
|
||||||
open_order_id="sell_123456",
|
open_order_id="sell_123456",
|
||||||
@@ -3459,19 +3463,20 @@ def test_handle_cancel_exit_limit(mocker, default_conf_usdt, fee, leverage) -> N
|
|||||||
close_rate=0.555,
|
close_rate=0.555,
|
||||||
close_date=dt_now(),
|
close_date=dt_now(),
|
||||||
exit_reason="sell_reason_whatever",
|
exit_reason="sell_reason_whatever",
|
||||||
stake_amount=entry_price * 2,
|
stake_amount=entry_price * amount,
|
||||||
leverage=leverage,
|
leverage=leverage,
|
||||||
|
is_short=is_short,
|
||||||
)
|
)
|
||||||
trade.orders = [
|
trade.orders = [
|
||||||
Order(
|
Order(
|
||||||
ft_order_side='buy',
|
ft_order_side=entry_side(is_short),
|
||||||
ft_pair=trade.pair,
|
ft_pair=trade.pair,
|
||||||
ft_is_open=False,
|
ft_is_open=False,
|
||||||
order_id='buy_123456',
|
order_id='buy_123456',
|
||||||
status="closed",
|
status="closed",
|
||||||
symbol=trade.pair,
|
symbol=trade.pair,
|
||||||
order_type="market",
|
order_type="market",
|
||||||
side="buy",
|
side=entry_side(is_short),
|
||||||
price=trade.open_rate,
|
price=trade.open_rate,
|
||||||
average=trade.open_rate,
|
average=trade.open_rate,
|
||||||
filled=trade.amount,
|
filled=trade.amount,
|
||||||
@@ -3481,14 +3486,14 @@ def test_handle_cancel_exit_limit(mocker, default_conf_usdt, fee, leverage) -> N
|
|||||||
order_filled_date=trade.open_date,
|
order_filled_date=trade.open_date,
|
||||||
),
|
),
|
||||||
Order(
|
Order(
|
||||||
ft_order_side='sell',
|
ft_order_side=exit_side(is_short),
|
||||||
ft_pair=trade.pair,
|
ft_pair=trade.pair,
|
||||||
ft_is_open=True,
|
ft_is_open=True,
|
||||||
order_id='sell_123456',
|
order_id='sell_123456',
|
||||||
status="open",
|
status="open",
|
||||||
symbol=trade.pair,
|
symbol=trade.pair,
|
||||||
order_type="limit",
|
order_type="limit",
|
||||||
side="sell",
|
side=exit_side(is_short),
|
||||||
price=trade.open_rate,
|
price=trade.open_rate,
|
||||||
average=trade.open_rate,
|
average=trade.open_rate,
|
||||||
filled=0.0,
|
filled=0.0,
|
||||||
@@ -3514,8 +3519,8 @@ def test_handle_cancel_exit_limit(mocker, default_conf_usdt, fee, leverage) -> N
|
|||||||
send_msg_mock.reset_mock()
|
send_msg_mock.reset_mock()
|
||||||
|
|
||||||
# Partial exit - below exit threshold
|
# Partial exit - below exit threshold
|
||||||
order['amount'] = 2 * leverage
|
order['amount'] = amount * leverage
|
||||||
order['filled'] = 1.9 * leverage
|
order['filled'] = amount * 0.99 * leverage
|
||||||
assert not freqtrade.handle_cancel_exit(trade, order, reason)
|
assert not freqtrade.handle_cancel_exit(trade, order, reason)
|
||||||
# Assert cancel_order was not called (callcount remains unchanged)
|
# Assert cancel_order was not called (callcount remains unchanged)
|
||||||
assert cancel_order_mock.call_count == 1
|
assert cancel_order_mock.call_count == 1
|
||||||
|
|||||||
Reference in New Issue
Block a user