From 0cc7039232017588b3d24977704797c5078774cf Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 24 Aug 2023 17:53:46 +0200 Subject: [PATCH] Fix mock trade 1 status --- tests/conftest_trades.py | 6 +++--- tests/persistence/test_persistence.py | 31 ++++++++++++++------------- tests/test_freqtradebot.py | 13 +++++------ 3 files changed, 26 insertions(+), 24 deletions(-) diff --git a/tests/conftest_trades.py b/tests/conftest_trades.py index 056d055c2..e50ed0e59 100644 --- a/tests/conftest_trades.py +++ b/tests/conftest_trades.py @@ -22,15 +22,15 @@ def mock_order_1(is_short: bool): return { 'id': f'1234_{direc(is_short)}', 'symbol': 'ETH/BTC', - 'status': 'closed', + 'status': 'open', 'side': entry_side(is_short), 'type': 'limit', 'price': 0.123, 'average': 0.123, 'amount': 123.0, - 'filled': 123.0, + 'filled': 50.0, 'cost': 15.129, - 'remaining': 0.0, + 'remaining': 123.0 - 50.0, } diff --git a/tests/persistence/test_persistence.py b/tests/persistence/test_persistence.py index 958db8c72..5adaba1d6 100644 --- a/tests/persistence/test_persistence.py +++ b/tests/persistence/test_persistence.py @@ -1969,9 +1969,9 @@ def test_select_order(fee, is_short): # Open buy order, no sell order order = trades[0].select_order(trades[0].entry_side, True) - assert order is None - order = trades[0].select_order(trades[0].entry_side, False) assert order is not None + order = trades[0].select_order(trades[0].entry_side, False) + assert order is None order = trades[0].select_order(trades[0].exit_side, None) assert order is None @@ -2442,7 +2442,16 @@ def test_select_filled_orders(fee): # Closed buy order, no sell order orders = trades[0].select_filled_orders('buy') + assert isinstance(orders, list) + assert len(orders) == 0 + + orders = trades[0].select_filled_orders('sell') assert orders is not None + assert len(orders) == 0 + + # closed buy order, and closed sell order + orders = trades[1].select_filled_orders('buy') + assert isinstance(orders, list) assert len(orders) == 1 order = orders[0] assert order.amount > 0 @@ -2450,33 +2459,25 @@ def test_select_filled_orders(fee): assert order.side == 'buy' assert order.ft_order_side == 'buy' assert order.status == 'closed' - orders = trades[0].select_filled_orders('sell') - assert orders is not None - assert len(orders) == 0 - - # closed buy order, and closed sell order - orders = trades[1].select_filled_orders('buy') - assert orders is not None - assert len(orders) == 1 orders = trades[1].select_filled_orders('sell') - assert orders is not None + assert isinstance(orders, list) assert len(orders) == 1 # Has open buy order orders = trades[3].select_filled_orders('buy') - assert orders is not None + assert isinstance(orders, list) assert len(orders) == 0 orders = trades[3].select_filled_orders('sell') - assert orders is not None + assert isinstance(orders, list) assert len(orders) == 0 # Open sell order orders = trades[4].select_filled_orders('buy') - assert orders is not None + assert isinstance(orders, list) assert len(orders) == 1 orders = trades[4].select_filled_orders('sell') - assert orders is not None + assert isinstance(orders, list) assert len(orders) == 0 diff --git a/tests/test_freqtradebot.py b/tests/test_freqtradebot.py index 958be6e24..0d1d6d5c0 100644 --- a/tests/test_freqtradebot.py +++ b/tests/test_freqtradebot.py @@ -5387,7 +5387,7 @@ def test_startup_update_open_orders(mocker, default_conf_usdt, fee, caplog, is_s freqtrade.config['dry_run'] = False freqtrade.startup_update_open_orders() - assert len(Order.get_open_orders()) == 3 + assert len(Order.get_open_orders()) == 4 matching_buy_order = mock_order_4(is_short=is_short) matching_buy_order.update({ 'status': 'closed', @@ -5395,7 +5395,7 @@ def test_startup_update_open_orders(mocker, default_conf_usdt, fee, caplog, is_s mocker.patch(f'{EXMS}.fetch_order', return_value=matching_buy_order) freqtrade.startup_update_open_orders() # Only stoploss and sell orders are kept open - assert len(Order.get_open_orders()) == 2 + assert len(Order.get_open_orders()) == 3 caplog.clear() mocker.patch(f'{EXMS}.fetch_order', side_effect=ExchangeError) @@ -5407,7 +5407,7 @@ def test_startup_update_open_orders(mocker, default_conf_usdt, fee, caplog, is_s # Orders which are no longer found after X days should be assumed as canceled. freqtrade.startup_update_open_orders() assert log_has_re(r"Order is older than \d days.*", caplog) - assert hto_mock.call_count == 2 + assert hto_mock.call_count == 3 assert hto_mock.call_args_list[0][0][0]['status'] == 'canceled' assert hto_mock.call_args_list[1][0][0]['status'] == 'canceled' @@ -5561,14 +5561,15 @@ def test_handle_insufficient_funds(mocker, default_conf_usdt, fee, is_short, cap caplog.clear() # No open order - trade = trades[0] + trade = trades[1] reset_open_orders(trade) assert trade.open_order_id is None assert trade.stoploss_order_id is None freqtrade.handle_insufficient_funds(trade) - order = mock_order_1(is_short=is_short) - assert log_has_re(r"Order Order(.*order_id=" + order['id'] + ".*) is no longer open.", caplog) + order = trade.orders[0] + assert log_has_re(r"Order Order(.*order_id=" + order.order_id + ".*) is no longer open.", + caplog) assert mock_fo.call_count == 0 assert mock_uts.call_count == 0 # No change to orderid - as update_trade_state is mocked