mirror of
https://github.com/freqtrade/freqtrade.git
synced 2026-03-04 21:03:31 +00:00
Merge branch 'freqtrade:develop' into develop
This commit is contained in:
@@ -20,7 +20,7 @@ from freqtrade.exchange import (Binance, Bittrex, Exchange, Kraken, amount_to_pr
|
||||
timeframe_to_minutes, timeframe_to_msecs, timeframe_to_next_date,
|
||||
timeframe_to_prev_date, timeframe_to_seconds)
|
||||
from freqtrade.exchange.common import (API_FETCH_ORDER_RETRY_COUNT, API_RETRY_COUNT,
|
||||
calculate_backoff, remove_credentials)
|
||||
calculate_backoff, remove_exchange_credentials)
|
||||
from freqtrade.exchange.exchange import amount_to_contract_precision
|
||||
from freqtrade.resolvers.exchange_resolver import ExchangeResolver
|
||||
from tests.conftest import (EXMS, generate_test_data_raw, get_mock_coro, get_patched_exchange,
|
||||
@@ -137,16 +137,14 @@ def test_init(default_conf, mocker, caplog):
|
||||
assert log_has('Instance is running with dry_run enabled', caplog)
|
||||
|
||||
|
||||
def test_remove_credentials(default_conf, caplog) -> None:
|
||||
def test_remove_exchange_credentials(default_conf) -> None:
|
||||
conf = deepcopy(default_conf)
|
||||
conf['dry_run'] = False
|
||||
remove_credentials(conf)
|
||||
remove_exchange_credentials(conf['exchange'], False)
|
||||
|
||||
assert conf['exchange']['key'] != ''
|
||||
assert conf['exchange']['secret'] != ''
|
||||
|
||||
conf['dry_run'] = True
|
||||
remove_credentials(conf)
|
||||
remove_exchange_credentials(conf['exchange'], True)
|
||||
assert conf['exchange']['key'] == ''
|
||||
assert conf['exchange']['secret'] == ''
|
||||
assert conf['exchange']['password'] == ''
|
||||
|
||||
@@ -121,7 +121,7 @@ def test_order_dict(default_conf_usdt, mocker, runmode, caplog) -> None:
|
||||
|
||||
freqtrade = FreqtradeBot(conf)
|
||||
if runmode == RunMode.LIVE:
|
||||
assert not log_has_re(".*stoploss_on_exchange .* dry-run", caplog)
|
||||
assert not log_has_re(r".*stoploss_on_exchange .* dry-run", caplog)
|
||||
assert freqtrade.strategy.order_types['stoploss_on_exchange']
|
||||
|
||||
caplog.clear()
|
||||
@@ -136,7 +136,7 @@ def test_order_dict(default_conf_usdt, mocker, runmode, caplog) -> None:
|
||||
}
|
||||
freqtrade = FreqtradeBot(conf)
|
||||
assert not freqtrade.strategy.order_types['stoploss_on_exchange']
|
||||
assert not log_has_re(".*stoploss_on_exchange .* dry-run", caplog)
|
||||
assert not log_has_re(r".*stoploss_on_exchange .* dry-run", caplog)
|
||||
|
||||
|
||||
def test_get_trade_stake_amount(default_conf_usdt, mocker) -> None:
|
||||
@@ -149,6 +149,34 @@ def test_get_trade_stake_amount(default_conf_usdt, mocker) -> None:
|
||||
assert result == default_conf_usdt['stake_amount']
|
||||
|
||||
|
||||
@pytest.mark.parametrize('runmode', [
|
||||
RunMode.DRY_RUN,
|
||||
RunMode.LIVE
|
||||
])
|
||||
def test_load_strategy_no_keys(default_conf_usdt, mocker, runmode, caplog) -> None:
|
||||
patch_RPCManager(mocker)
|
||||
patch_exchange(mocker)
|
||||
conf = deepcopy(default_conf_usdt)
|
||||
conf['runmode'] = runmode
|
||||
erm = mocker.patch('freqtrade.freqtradebot.ExchangeResolver.load_exchange')
|
||||
|
||||
freqtrade = FreqtradeBot(conf)
|
||||
strategy_config = freqtrade.strategy.config
|
||||
assert id(strategy_config['exchange']) == id(conf['exchange'])
|
||||
# Keys have been removed and are not passed to the exchange
|
||||
assert strategy_config['exchange']['key'] == ''
|
||||
assert strategy_config['exchange']['secret'] == ''
|
||||
|
||||
assert erm.call_count == 1
|
||||
ex_conf = erm.call_args_list[0][1]['exchange_config']
|
||||
assert id(ex_conf) != id(conf['exchange'])
|
||||
# Keys are still present
|
||||
assert ex_conf['key'] != ''
|
||||
assert ex_conf['key'] == default_conf_usdt['exchange']['key']
|
||||
assert ex_conf['secret'] != ''
|
||||
assert ex_conf['secret'] == default_conf_usdt['exchange']['secret']
|
||||
|
||||
|
||||
@pytest.mark.parametrize("amend_last,wallet,max_open,lsamr,expected", [
|
||||
(False, 120, 2, 0.5, [60, None]),
|
||||
(True, 120, 2, 0.5, [60, 58.8]),
|
||||
|
||||
Reference in New Issue
Block a user