mirror of
https://github.com/freqtrade/freqtrade.git
synced 2026-02-16 11:10:31 +00:00
Test test_handle_cancel_exit_limit short
This commit is contained in:
@@ -3430,8 +3430,11 @@ def test_handle_cancel_enter_corder_empty(mocker, default_conf_usdt, limit_order
|
||||
assert cancel_order_mock.call_count == 1
|
||||
|
||||
|
||||
@pytest.mark.parametrize('is_short', [True, False])
|
||||
@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)
|
||||
patch_exchange(mocker)
|
||||
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,
|
||||
)
|
||||
entry_price = 0.245441
|
||||
|
||||
mocker.patch(f'{EXMS}.get_rate', return_value=entry_price)
|
||||
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)
|
||||
|
||||
trade = Trade(
|
||||
pair='LTC/ETH',
|
||||
amount=2 * leverage,
|
||||
pair='LTC/USDT',
|
||||
amount=amount * leverage,
|
||||
exchange='binance',
|
||||
open_rate=entry_price,
|
||||
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_date=dt_now(),
|
||||
exit_reason="sell_reason_whatever",
|
||||
stake_amount=entry_price * 2,
|
||||
stake_amount=entry_price * amount,
|
||||
leverage=leverage,
|
||||
is_short=is_short,
|
||||
)
|
||||
trade.orders = [
|
||||
Order(
|
||||
ft_order_side='buy',
|
||||
ft_order_side=entry_side(is_short),
|
||||
ft_pair=trade.pair,
|
||||
ft_is_open=False,
|
||||
order_id='buy_123456',
|
||||
status="closed",
|
||||
symbol=trade.pair,
|
||||
order_type="market",
|
||||
side="buy",
|
||||
side=entry_side(is_short),
|
||||
price=trade.open_rate,
|
||||
average=trade.open_rate,
|
||||
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(
|
||||
ft_order_side='sell',
|
||||
ft_order_side=exit_side(is_short),
|
||||
ft_pair=trade.pair,
|
||||
ft_is_open=True,
|
||||
order_id='sell_123456',
|
||||
status="open",
|
||||
symbol=trade.pair,
|
||||
order_type="limit",
|
||||
side="sell",
|
||||
side=exit_side(is_short),
|
||||
price=trade.open_rate,
|
||||
average=trade.open_rate,
|
||||
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()
|
||||
|
||||
# Partial exit - below exit threshold
|
||||
order['amount'] = 2 * leverage
|
||||
order['filled'] = 1.9 * leverage
|
||||
order['amount'] = amount * leverage
|
||||
order['filled'] = amount * 0.99 * leverage
|
||||
assert not freqtrade.handle_cancel_exit(trade, order, reason)
|
||||
# Assert cancel_order was not called (callcount remains unchanged)
|
||||
assert cancel_order_mock.call_count == 1
|
||||
|
||||
Reference in New Issue
Block a user