Add tests for amend_last_stake_amount
This commit is contained in:
parent
b37f34ff5b
commit
ca054799d0
@ -140,11 +140,45 @@ def test_get_trade_stake_amount(default_conf, ticker, mocker) -> None:
|
|||||||
assert result == default_conf['stake_amount']
|
assert result == default_conf['stake_amount']
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("amend_last,wallet,max_open,expected", [
|
||||||
|
(False, 0.002, 2, [0.001, None]),
|
||||||
|
(True, 0.002, 2, [0.001, 0.00098]),
|
||||||
|
(False, 0.003, 3, [0.001, 0.001, None]),
|
||||||
|
(True, 0.003, 3, [0.001, 0.001, 0.00097]),
|
||||||
|
])
|
||||||
|
def test_check_available_stake_amount(default_conf, ticker, mocker, fee, limit_buy_order,
|
||||||
|
amend_last, wallet, max_open, expected) -> None:
|
||||||
|
patch_RPCManager(mocker)
|
||||||
|
patch_exchange(mocker)
|
||||||
|
mocker.patch.multiple(
|
||||||
|
'freqtrade.exchange.Exchange',
|
||||||
|
fetch_ticker=ticker,
|
||||||
|
get_balance=MagicMock(return_value=default_conf['stake_amount'] * 2),
|
||||||
|
buy=MagicMock(return_value={'id': limit_buy_order['id']}),
|
||||||
|
get_fee=fee
|
||||||
|
)
|
||||||
|
default_conf['dry_run_wallet'] = wallet
|
||||||
|
|
||||||
|
default_conf['amend_last_stake_amount'] = amend_last
|
||||||
|
freqtrade = FreqtradeBot(default_conf)
|
||||||
|
|
||||||
|
for i in range(0, max_open):
|
||||||
|
|
||||||
|
if expected[i] is not None:
|
||||||
|
result = freqtrade.get_trade_stake_amount('ETH/BTC')
|
||||||
|
assert pytest.approx(result) == expected[i]
|
||||||
|
freqtrade.execute_buy('ETH/BTC', result)
|
||||||
|
else:
|
||||||
|
with pytest.raises(DependencyException):
|
||||||
|
freqtrade.get_trade_stake_amount('ETH/BTC')
|
||||||
|
|
||||||
|
|
||||||
def test_get_trade_stake_amount_no_stake_amount(default_conf, mocker) -> None:
|
def test_get_trade_stake_amount_no_stake_amount(default_conf, mocker) -> None:
|
||||||
patch_RPCManager(mocker)
|
patch_RPCManager(mocker)
|
||||||
patch_exchange(mocker)
|
patch_exchange(mocker)
|
||||||
patch_wallet(mocker, free=default_conf['stake_amount'] * 0.5)
|
patch_wallet(mocker, free=default_conf['stake_amount'] * 0.5)
|
||||||
freqtrade = FreqtradeBot(default_conf)
|
freqtrade = FreqtradeBot(default_conf)
|
||||||
|
patch_get_signal(freqtrade)
|
||||||
|
|
||||||
with pytest.raises(DependencyException, match=r'.*stake amount.*'):
|
with pytest.raises(DependencyException, match=r'.*stake amount.*'):
|
||||||
freqtrade.get_trade_stake_amount('ETH/BTC')
|
freqtrade.get_trade_stake_amount('ETH/BTC')
|
||||||
|
Loading…
Reference in New Issue
Block a user