fix test test_freqtradebot.py::test_execute_entry

This commit is contained in:
axel
2023-06-14 14:20:14 -04:00
parent 2495661554
commit 450fc5763f
3 changed files with 7 additions and 8 deletions

View File

@@ -844,7 +844,6 @@ class FreqtradeBot(LoggingMixin):
open_rate_requested=enter_limit_requested, open_rate_requested=enter_limit_requested,
open_date=open_date, open_date=open_date,
exchange=self.exchange.id, exchange=self.exchange.id,
open_order_id=order_id,
strategy=self.strategy.get_strategy_name(), strategy=self.strategy.get_strategy_name(),
enter_tag=enter_tag, enter_tag=enter_tag,
timeframe=timeframe_to_minutes(self.config['timeframe']), timeframe=timeframe_to_minutes(self.config['timeframe']),
@@ -865,7 +864,6 @@ class FreqtradeBot(LoggingMixin):
trade.is_open = True trade.is_open = True
trade.fee_open_currency = None trade.fee_open_currency = None
trade.open_rate_requested = enter_limit_requested trade.open_rate_requested = enter_limit_requested
trade.open_order_id = order_id
trade.orders.append(order_obj) trade.orders.append(order_obj)
trade.recalc_trade_from_orders() trade.recalc_trade_from_orders()
@@ -1905,11 +1903,11 @@ class FreqtradeBot(LoggingMixin):
trade.amount, abs_tol=constants.MATH_CLOSE_PREC) trade.amount, abs_tol=constants.MATH_CLOSE_PREC)
if order.ft_order_side == trade.exit_side: if order.ft_order_side == trade.exit_side:
# Exit notification # Exit notification
if send_msg and not stoploss_order and not trade.open_order_id: if send_msg and not stoploss_order and order.order_id not in trade.open_orders_ids:
self._notify_exit(trade, '', fill=True, sub_trade=sub_trade, order=order) self._notify_exit(trade, '', fill=True, sub_trade=sub_trade, order=order)
if not trade.is_open: if not trade.is_open:
self.handle_protections(trade.pair, trade.trade_direction) self.handle_protections(trade.pair, trade.trade_direction)
elif send_msg and not trade.open_order_id and not stoploss_order: elif send_msg and order.order_id not in trade.open_orders_ids and not stoploss_order:
# Enter fill # Enter fill
self._notify_enter(trade, order, order.order_type, fill=True, sub_trade=sub_trade) self._notify_enter(trade, order, order.order_type, fill=True, sub_trade=sub_trade)

View File

@@ -1440,7 +1440,7 @@ class Trade(ModelBase, LocalTrade):
Returns all open trades Returns all open trades
NOTE: Not supported in Backtesting. NOTE: Not supported in Backtesting.
""" """
return cast(List[Trade], Trade.get_trades(Trade.open_order_id.isnot(None)).all()) return cast(List[Trade], Trade.get_trades(Trade.open_orders_count.isnot(0)).all())
@staticmethod @staticmethod
def get_open_trades_without_assigned_fees(): def get_open_trades_without_assigned_fees():

View File

@@ -872,7 +872,8 @@ def test_execute_entry(mocker, default_conf_usdt, fee, limit_order,
trade.is_short = is_short trade.is_short = is_short
assert trade assert trade
assert trade.is_open is True assert trade.is_open is True
assert trade.open_order_id == '22' assert trade.open_orders_count > 0
assert '22' in trade.open_orders_ids
# Test calling with price # Test calling with price
open_order['id'] = '33' open_order['id'] = '33'
@@ -898,7 +899,7 @@ def test_execute_entry(mocker, default_conf_usdt, fee, limit_order,
trade = Trade.session.scalars(select(Trade)).all()[2] trade = Trade.session.scalars(select(Trade)).all()[2]
trade.is_short = is_short trade.is_short = is_short
assert trade assert trade
assert trade.open_order_id is None assert trade.open_orders_count == 0
assert trade.open_rate == 10 assert trade.open_rate == 10
assert trade.stake_amount == round(order['average'] * order['filled'] / leverage, 8) assert trade.stake_amount == round(order['average'] * order['filled'] / leverage, 8)
assert pytest.approx(trade.liquidation_price) == liq_price assert pytest.approx(trade.liquidation_price) == liq_price
@@ -916,7 +917,7 @@ def test_execute_entry(mocker, default_conf_usdt, fee, limit_order,
trade = Trade.session.scalars(select(Trade)).all()[3] trade = Trade.session.scalars(select(Trade)).all()[3]
trade.is_short = is_short trade.is_short = is_short
assert trade assert trade
assert trade.open_order_id is None assert trade.open_orders_count == 0
assert trade.open_rate == 0.5 assert trade.open_rate == 0.5
assert trade.stake_amount == round(order['average'] * order['filled'] / leverage, 8) assert trade.stake_amount == round(order['average'] * order['filled'] / leverage, 8)