Test test_handle_cancel_exit_limit short

This commit is contained in:
Matthias
2023-09-07 18:14:39 +02:00
parent 44461bd1a1
commit bae4abace2
+15 -10
View File
@@ -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