Fix mock trade 1 status
This commit is contained in:
@@ -22,15 +22,15 @@ def mock_order_1(is_short: bool):
|
|||||||
return {
|
return {
|
||||||
'id': f'1234_{direc(is_short)}',
|
'id': f'1234_{direc(is_short)}',
|
||||||
'symbol': 'ETH/BTC',
|
'symbol': 'ETH/BTC',
|
||||||
'status': 'closed',
|
'status': 'open',
|
||||||
'side': entry_side(is_short),
|
'side': entry_side(is_short),
|
||||||
'type': 'limit',
|
'type': 'limit',
|
||||||
'price': 0.123,
|
'price': 0.123,
|
||||||
'average': 0.123,
|
'average': 0.123,
|
||||||
'amount': 123.0,
|
'amount': 123.0,
|
||||||
'filled': 123.0,
|
'filled': 50.0,
|
||||||
'cost': 15.129,
|
'cost': 15.129,
|
||||||
'remaining': 0.0,
|
'remaining': 123.0 - 50.0,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1969,9 +1969,9 @@ def test_select_order(fee, is_short):
|
|||||||
|
|
||||||
# Open buy order, no sell order
|
# Open buy order, no sell order
|
||||||
order = trades[0].select_order(trades[0].entry_side, True)
|
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
|
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)
|
order = trades[0].select_order(trades[0].exit_side, None)
|
||||||
assert order is None
|
assert order is None
|
||||||
|
|
||||||
@@ -2442,7 +2442,16 @@ def test_select_filled_orders(fee):
|
|||||||
|
|
||||||
# Closed buy order, no sell order
|
# Closed buy order, no sell order
|
||||||
orders = trades[0].select_filled_orders('buy')
|
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 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
|
assert len(orders) == 1
|
||||||
order = orders[0]
|
order = orders[0]
|
||||||
assert order.amount > 0
|
assert order.amount > 0
|
||||||
@@ -2450,33 +2459,25 @@ def test_select_filled_orders(fee):
|
|||||||
assert order.side == 'buy'
|
assert order.side == 'buy'
|
||||||
assert order.ft_order_side == 'buy'
|
assert order.ft_order_side == 'buy'
|
||||||
assert order.status == 'closed'
|
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')
|
orders = trades[1].select_filled_orders('sell')
|
||||||
assert orders is not None
|
assert isinstance(orders, list)
|
||||||
assert len(orders) == 1
|
assert len(orders) == 1
|
||||||
|
|
||||||
# Has open buy order
|
# Has open buy order
|
||||||
orders = trades[3].select_filled_orders('buy')
|
orders = trades[3].select_filled_orders('buy')
|
||||||
assert orders is not None
|
assert isinstance(orders, list)
|
||||||
assert len(orders) == 0
|
assert len(orders) == 0
|
||||||
orders = trades[3].select_filled_orders('sell')
|
orders = trades[3].select_filled_orders('sell')
|
||||||
assert orders is not None
|
assert isinstance(orders, list)
|
||||||
assert len(orders) == 0
|
assert len(orders) == 0
|
||||||
|
|
||||||
# Open sell order
|
# Open sell order
|
||||||
orders = trades[4].select_filled_orders('buy')
|
orders = trades[4].select_filled_orders('buy')
|
||||||
assert orders is not None
|
assert isinstance(orders, list)
|
||||||
assert len(orders) == 1
|
assert len(orders) == 1
|
||||||
orders = trades[4].select_filled_orders('sell')
|
orders = trades[4].select_filled_orders('sell')
|
||||||
assert orders is not None
|
assert isinstance(orders, list)
|
||||||
assert len(orders) == 0
|
assert len(orders) == 0
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -5387,7 +5387,7 @@ def test_startup_update_open_orders(mocker, default_conf_usdt, fee, caplog, is_s
|
|||||||
freqtrade.config['dry_run'] = False
|
freqtrade.config['dry_run'] = False
|
||||||
freqtrade.startup_update_open_orders()
|
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 = mock_order_4(is_short=is_short)
|
||||||
matching_buy_order.update({
|
matching_buy_order.update({
|
||||||
'status': 'closed',
|
'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)
|
mocker.patch(f'{EXMS}.fetch_order', return_value=matching_buy_order)
|
||||||
freqtrade.startup_update_open_orders()
|
freqtrade.startup_update_open_orders()
|
||||||
# Only stoploss and sell orders are kept open
|
# Only stoploss and sell orders are kept open
|
||||||
assert len(Order.get_open_orders()) == 2
|
assert len(Order.get_open_orders()) == 3
|
||||||
|
|
||||||
caplog.clear()
|
caplog.clear()
|
||||||
mocker.patch(f'{EXMS}.fetch_order', side_effect=ExchangeError)
|
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.
|
# Orders which are no longer found after X days should be assumed as canceled.
|
||||||
freqtrade.startup_update_open_orders()
|
freqtrade.startup_update_open_orders()
|
||||||
assert log_has_re(r"Order is older than \d days.*", caplog)
|
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[0][0][0]['status'] == 'canceled'
|
||||||
assert hto_mock.call_args_list[1][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()
|
caplog.clear()
|
||||||
|
|
||||||
# No open order
|
# No open order
|
||||||
trade = trades[0]
|
trade = trades[1]
|
||||||
reset_open_orders(trade)
|
reset_open_orders(trade)
|
||||||
assert trade.open_order_id is None
|
assert trade.open_order_id is None
|
||||||
assert trade.stoploss_order_id is None
|
assert trade.stoploss_order_id is None
|
||||||
|
|
||||||
freqtrade.handle_insufficient_funds(trade)
|
freqtrade.handle_insufficient_funds(trade)
|
||||||
order = mock_order_1(is_short=is_short)
|
order = trade.orders[0]
|
||||||
assert log_has_re(r"Order Order(.*order_id=" + order['id'] + ".*) is no longer open.", caplog)
|
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_fo.call_count == 0
|
||||||
assert mock_uts.call_count == 0
|
assert mock_uts.call_count == 0
|
||||||
# No change to orderid - as update_trade_state is mocked
|
# No change to orderid - as update_trade_state is mocked
|
||||||
|
|||||||
Reference in New Issue
Block a user