diff --git a/tests/test_freqtradebot.py b/tests/test_freqtradebot.py index c9cb86cc0..70c3fee3e 100644 --- a/tests/test_freqtradebot.py +++ b/tests/test_freqtradebot.py @@ -146,7 +146,7 @@ def test_get_trade_stake_amount(default_conf_usdt, mocker) -> None: freqtrade = FreqtradeBot(default_conf_usdt) - result = freqtrade.wallets.get_trade_stake_amount('ETH/USDT') + result = freqtrade.wallets.get_trade_stake_amount('ETH/USDT', 1) assert result == default_conf_usdt['stake_amount'] @@ -211,12 +211,12 @@ def test_check_available_stake_amount( if expected[i] is not None: limit_buy_order_usdt_open['id'] = str(i) - result = freqtrade.wallets.get_trade_stake_amount('ETH/USDT') + result = freqtrade.wallets.get_trade_stake_amount('ETH/USDT', 1) assert pytest.approx(result) == expected[i] freqtrade.execute_entry('ETH/USDT', result) else: with pytest.raises(DependencyException): - freqtrade.wallets.get_trade_stake_amount('ETH/USDT') + freqtrade.wallets.get_trade_stake_amount('ETH/USDT', 1) def test_edge_called_in_process(mocker, edge_conf) -> None: @@ -238,9 +238,9 @@ def test_edge_overrides_stake_amount(mocker, edge_conf) -> None: freqtrade = FreqtradeBot(edge_conf) assert freqtrade.wallets.get_trade_stake_amount( - 'NEO/BTC', freqtrade.edge) == (999.9 * 0.5 * 0.01) / 0.20 + 'NEO/BTC', 1, freqtrade.edge) == (999.9 * 0.5 * 0.01) / 0.20 assert freqtrade.wallets.get_trade_stake_amount( - 'LTC/BTC', freqtrade.edge) == (999.9 * 0.5 * 0.01) / 0.21 + 'LTC/BTC', 1, freqtrade.edge) == (999.9 * 0.5 * 0.01) / 0.21 @pytest.mark.parametrize('buy_price_mult,ignore_strat_sl', [ @@ -420,7 +420,8 @@ def test_create_trade_minimal_amount( else: assert not freqtrade.create_trade('ETH/USDT') if not max_open_trades: - assert freqtrade.wallets.get_trade_stake_amount('ETH/USDT', freqtrade.edge) == 0 + assert freqtrade.wallets.get_trade_stake_amount( + 'ETH/USDT', default_conf_usdt['max_open_trades'], freqtrade.edge) == 0 @pytest.mark.parametrize('whitelist,positions', [ diff --git a/tests/test_integration.py b/tests/test_integration.py index 12647f6e2..31b742273 100644 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -185,7 +185,7 @@ def test_forcebuy_last_unlimited(default_conf, ticker, fee, mocker, balance_rati trades = Trade.session.scalars(select(Trade)).all() assert len(trades) == 4 - assert freqtrade.wallets.get_trade_stake_amount('XRP/BTC') == result1 + assert freqtrade.wallets.get_trade_stake_amount('XRP/BTC', 5) == result1 rpc._rpc_force_entry('TKN/BTC', None) @@ -205,7 +205,7 @@ def test_forcebuy_last_unlimited(default_conf, ticker, fee, mocker, balance_rati # One trade sold assert len(trades) == 4 # stake-amount should now be reduced, since one trade was sold at a loss. - assert freqtrade.wallets.get_trade_stake_amount('XRP/BTC') < result1 + assert freqtrade.wallets.get_trade_stake_amount('XRP/BTC', 5) < result1 # Validate that balance of sold trade is not in dry-run balances anymore. bals2 = freqtrade.wallets.get_all_balances() assert bals != bals2 diff --git a/tests/test_wallets.py b/tests/test_wallets.py index 478993058..1c1a3b548 100644 --- a/tests/test_wallets.py +++ b/tests/test_wallets.py @@ -121,7 +121,7 @@ def test_get_trade_stake_amount_no_stake_amount(default_conf, mocker) -> None: freqtrade = get_patched_freqtradebot(mocker, default_conf) with pytest.raises(DependencyException, match=r'.*stake amount.*'): - freqtrade.wallets.get_trade_stake_amount('ETH/BTC') + freqtrade.wallets.get_trade_stake_amount('ETH/BTC', 1) @pytest.mark.parametrize("balance_ratio,capital,result1,result2", [ @@ -148,7 +148,6 @@ def test_get_trade_stake_amount_unlimited_amount(default_conf, ticker, balance_r conf = deepcopy(default_conf) conf['stake_amount'] = UNLIMITED_STAKE_AMOUNT conf['dry_run_wallet'] = 100 - conf['max_open_trades'] = 2 conf['tradable_balance_ratio'] = balance_ratio if capital is not None: conf['available_capital'] = capital @@ -156,30 +155,28 @@ def test_get_trade_stake_amount_unlimited_amount(default_conf, ticker, balance_r freqtrade = get_patched_freqtradebot(mocker, conf) # no open trades, order amount should be 'balance / max_open_trades' - result = freqtrade.wallets.get_trade_stake_amount('ETH/USDT') + result = freqtrade.wallets.get_trade_stake_amount('ETH/USDT', 2) assert result == result1 # create one trade, order amount should be 'balance / (max_open_trades - num_open_trades)' freqtrade.execute_entry('ETH/USDT', result) - result = freqtrade.wallets.get_trade_stake_amount('LTC/USDT') + result = freqtrade.wallets.get_trade_stake_amount('LTC/USDT', 2) assert result == result1 # create 2 trades, order amount should be None freqtrade.execute_entry('LTC/BTC', result) - result = freqtrade.wallets.get_trade_stake_amount('XRP/USDT') + result = freqtrade.wallets.get_trade_stake_amount('XRP/USDT', 2) assert result == 0 - freqtrade.config['max_open_trades'] = 3 freqtrade.config['dry_run_wallet'] = 200 freqtrade.wallets.start_cap = 200 - result = freqtrade.wallets.get_trade_stake_amount('XRP/USDT') + result = freqtrade.wallets.get_trade_stake_amount('XRP/USDT', 3) assert round(result, 4) == round(result2, 4) # set max_open_trades = None, so do not trade - freqtrade.config['max_open_trades'] = 0 - result = freqtrade.wallets.get_trade_stake_amount('NEO/USDT') + result = freqtrade.wallets.get_trade_stake_amount('NEO/USDT', 0) assert result == 0