tests happy
This commit is contained in:
parent
1bdffcc73b
commit
94e6fb89b3
@ -44,6 +44,20 @@ def get_args(args):
|
|||||||
return Arguments(args, '').get_parsed_arg()
|
return Arguments(args, '').get_parsed_arg()
|
||||||
|
|
||||||
|
|
||||||
|
def patched_configuration_open(mocker, config):
|
||||||
|
file_mock = mocker.patch('freqtrade.configuration.configuration.open', mocker.mock_open(
|
||||||
|
read_data=json.dumps(config)
|
||||||
|
))
|
||||||
|
return file_mock
|
||||||
|
|
||||||
|
|
||||||
|
def patched_configuration_load_config_file(mocker, config) -> None:
|
||||||
|
mocker.patch(
|
||||||
|
'freqtrade.configuration.configuration.Configuration._load_config_file',
|
||||||
|
lambda *args, **kwargs: config
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def patch_exchange(mocker, api_mock=None, id='bittrex') -> None:
|
def patch_exchange(mocker, api_mock=None, id='bittrex') -> None:
|
||||||
mocker.patch('freqtrade.exchange.Exchange._load_markets', MagicMock(return_value={}))
|
mocker.patch('freqtrade.exchange.Exchange._load_markets', MagicMock(return_value={}))
|
||||||
mocker.patch('freqtrade.exchange.Exchange.validate_pairs', MagicMock())
|
mocker.patch('freqtrade.exchange.Exchange.validate_pairs', MagicMock())
|
||||||
|
@ -22,7 +22,8 @@ from freqtrade.optimize.backtesting import Backtesting
|
|||||||
from freqtrade.state import RunMode
|
from freqtrade.state import RunMode
|
||||||
from freqtrade.strategy.default_strategy import DefaultStrategy
|
from freqtrade.strategy.default_strategy import DefaultStrategy
|
||||||
from freqtrade.strategy.interface import SellType
|
from freqtrade.strategy.interface import SellType
|
||||||
from freqtrade.tests.conftest import get_args, log_has, log_has_re, patch_exchange
|
from freqtrade.tests.conftest import (get_args, log_has, log_has_re, patch_exchange,
|
||||||
|
patched_configuration_open)
|
||||||
|
|
||||||
|
|
||||||
def trim_dictlist(dict_list, num):
|
def trim_dictlist(dict_list, num):
|
||||||
@ -165,9 +166,7 @@ def _trend_alternate(dataframe=None, metadata=None):
|
|||||||
|
|
||||||
# Unit tests
|
# Unit tests
|
||||||
def test_setup_configuration_without_arguments(mocker, default_conf, caplog) -> None:
|
def test_setup_configuration_without_arguments(mocker, default_conf, caplog) -> None:
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
args = [
|
args = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
@ -205,10 +204,8 @@ def test_setup_configuration_without_arguments(mocker, default_conf, caplog) ->
|
|||||||
|
|
||||||
|
|
||||||
def test_setup_bt_configuration_with_arguments(mocker, default_conf, caplog) -> None:
|
def test_setup_bt_configuration_with_arguments(mocker, default_conf, caplog) -> None:
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
mocker.patch('freqtrade.configuration.configuration.Configuration._create_datadir', lambda s, c, x: x)
|
||||||
))
|
|
||||||
mocker.patch('freqtrade.configuration.Configuration._create_datadir', lambda s, c, x: x)
|
|
||||||
|
|
||||||
args = [
|
args = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
@ -276,9 +273,7 @@ def test_setup_bt_configuration_with_arguments(mocker, default_conf, caplog) ->
|
|||||||
def test_setup_configuration_unlimited_stake_amount(mocker, default_conf, caplog) -> None:
|
def test_setup_configuration_unlimited_stake_amount(mocker, default_conf, caplog) -> None:
|
||||||
default_conf['stake_amount'] = constants.UNLIMITED_STAKE_AMOUNT
|
default_conf['stake_amount'] = constants.UNLIMITED_STAKE_AMOUNT
|
||||||
|
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
args = [
|
args = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
@ -295,9 +290,8 @@ def test_start(mocker, fee, default_conf, caplog) -> None:
|
|||||||
mocker.patch('freqtrade.exchange.Exchange.get_fee', fee)
|
mocker.patch('freqtrade.exchange.Exchange.get_fee', fee)
|
||||||
patch_exchange(mocker)
|
patch_exchange(mocker)
|
||||||
mocker.patch('freqtrade.optimize.backtesting.Backtesting.start', start_mock)
|
mocker.patch('freqtrade.optimize.backtesting.Backtesting.start', start_mock)
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
args = [
|
args = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
'--strategy', 'DefaultStrategy',
|
'--strategy', 'DefaultStrategy',
|
||||||
@ -828,9 +822,7 @@ def test_backtest_start_live(default_conf, mocker, caplog):
|
|||||||
patch_exchange(mocker, api_mock)
|
patch_exchange(mocker, api_mock)
|
||||||
mocker.patch('freqtrade.optimize.backtesting.Backtesting.backtest', MagicMock())
|
mocker.patch('freqtrade.optimize.backtesting.Backtesting.backtest', MagicMock())
|
||||||
mocker.patch('freqtrade.optimize.backtesting.Backtesting._generate_text_table', MagicMock())
|
mocker.patch('freqtrade.optimize.backtesting.Backtesting._generate_text_table', MagicMock())
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
args = [
|
args = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
@ -880,9 +872,7 @@ def test_backtest_start_multi_strat(default_conf, mocker, caplog):
|
|||||||
gen_strattable_mock = MagicMock()
|
gen_strattable_mock = MagicMock()
|
||||||
mocker.patch('freqtrade.optimize.backtesting.Backtesting._generate_text_table_strategy',
|
mocker.patch('freqtrade.optimize.backtesting.Backtesting._generate_text_table_strategy',
|
||||||
gen_strattable_mock)
|
gen_strattable_mock)
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
args = [
|
args = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
|
@ -8,13 +8,12 @@ from freqtrade.edge import PairInfo
|
|||||||
from freqtrade.optimize import setup_configuration, start_edge
|
from freqtrade.optimize import setup_configuration, start_edge
|
||||||
from freqtrade.optimize.edge_cli import EdgeCli
|
from freqtrade.optimize.edge_cli import EdgeCli
|
||||||
from freqtrade.state import RunMode
|
from freqtrade.state import RunMode
|
||||||
from freqtrade.tests.conftest import get_args, log_has, log_has_re, patch_exchange
|
from freqtrade.tests.conftest import (get_args, log_has, log_has_re, patch_exchange,
|
||||||
|
patched_configuration_open)
|
||||||
|
|
||||||
|
|
||||||
def test_setup_configuration_without_arguments(mocker, default_conf, caplog) -> None:
|
def test_setup_configuration_without_arguments(mocker, default_conf, caplog) -> None:
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
args = [
|
args = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
@ -46,10 +45,8 @@ def test_setup_configuration_without_arguments(mocker, default_conf, caplog) ->
|
|||||||
|
|
||||||
|
|
||||||
def test_setup_edge_configuration_with_arguments(mocker, edge_conf, caplog) -> None:
|
def test_setup_edge_configuration_with_arguments(mocker, edge_conf, caplog) -> None:
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, edge_conf)
|
||||||
read_data=json.dumps(edge_conf)
|
mocker.patch('freqtrade.configuration.configuration.Configuration._create_datadir', lambda s, c, x: x)
|
||||||
))
|
|
||||||
mocker.patch('freqtrade.configuration.Configuration._create_datadir', lambda s, c, x: x)
|
|
||||||
|
|
||||||
args = [
|
args = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
@ -92,9 +89,8 @@ def test_start(mocker, fee, edge_conf, caplog) -> None:
|
|||||||
mocker.patch('freqtrade.exchange.Exchange.get_fee', fee)
|
mocker.patch('freqtrade.exchange.Exchange.get_fee', fee)
|
||||||
patch_exchange(mocker)
|
patch_exchange(mocker)
|
||||||
mocker.patch('freqtrade.optimize.edge_cli.EdgeCli.start', start_mock)
|
mocker.patch('freqtrade.optimize.edge_cli.EdgeCli.start', start_mock)
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, edge_conf)
|
||||||
read_data=json.dumps(edge_conf)
|
|
||||||
))
|
|
||||||
args = [
|
args = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
'--strategy', 'DefaultStrategy',
|
'--strategy', 'DefaultStrategy',
|
||||||
|
@ -16,7 +16,8 @@ from freqtrade.optimize.hyperopt import Hyperopt, HYPEROPT_LOCKFILE
|
|||||||
from freqtrade.optimize import setup_configuration, start_hyperopt
|
from freqtrade.optimize import setup_configuration, start_hyperopt
|
||||||
from freqtrade.resolvers.hyperopt_resolver import HyperOptResolver
|
from freqtrade.resolvers.hyperopt_resolver import HyperOptResolver
|
||||||
from freqtrade.state import RunMode
|
from freqtrade.state import RunMode
|
||||||
from freqtrade.tests.conftest import get_args, log_has, log_has_re, patch_exchange
|
from freqtrade.tests.conftest import (get_args, log_has, log_has_re, patch_exchange,
|
||||||
|
patched_configuration_load_config_file, patched_configuration_open)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope='function')
|
@pytest.fixture(scope='function')
|
||||||
@ -44,9 +45,7 @@ def create_trials(mocker, hyperopt) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_setup_hyperopt_configuration_without_arguments(mocker, default_conf, caplog) -> None:
|
def test_setup_hyperopt_configuration_without_arguments(mocker, default_conf, caplog) -> None:
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
args = [
|
args = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
@ -82,10 +81,8 @@ def test_setup_hyperopt_configuration_without_arguments(mocker, default_conf, ca
|
|||||||
|
|
||||||
|
|
||||||
def test_setup_hyperopt_configuration_with_arguments(mocker, default_conf, caplog) -> None:
|
def test_setup_hyperopt_configuration_with_arguments(mocker, default_conf, caplog) -> None:
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
mocker.patch('freqtrade.configuration.configuration.Configuration._create_datadir', lambda s, c, x: x)
|
||||||
))
|
|
||||||
mocker.patch('freqtrade.configuration.Configuration._create_datadir', lambda s, c, x: x)
|
|
||||||
|
|
||||||
args = [
|
args = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
@ -148,11 +145,8 @@ def test_setup_hyperopt_configuration_with_arguments(mocker, default_conf, caplo
|
|||||||
|
|
||||||
|
|
||||||
def test_hyperoptresolver(mocker, default_conf, caplog) -> None:
|
def test_hyperoptresolver(mocker, default_conf, caplog) -> None:
|
||||||
|
patched_configuration_load_config_file(mocker, default_conf)
|
||||||
|
|
||||||
mocker.patch(
|
|
||||||
'freqtrade.configuration.Configuration._load_config_file',
|
|
||||||
lambda *args, **kwargs: default_conf
|
|
||||||
)
|
|
||||||
hyperopts = DefaultHyperOpts
|
hyperopts = DefaultHyperOpts
|
||||||
delattr(hyperopts, 'populate_buy_trend')
|
delattr(hyperopts, 'populate_buy_trend')
|
||||||
delattr(hyperopts, 'populate_sell_trend')
|
delattr(hyperopts, 'populate_sell_trend')
|
||||||
@ -172,10 +166,7 @@ def test_hyperoptresolver(mocker, default_conf, caplog) -> None:
|
|||||||
|
|
||||||
def test_start(mocker, default_conf, caplog) -> None:
|
def test_start(mocker, default_conf, caplog) -> None:
|
||||||
start_mock = MagicMock()
|
start_mock = MagicMock()
|
||||||
mocker.patch(
|
patched_configuration_load_config_file(mocker, default_conf)
|
||||||
'freqtrade.configuration.Configuration._load_config_file',
|
|
||||||
lambda *args, **kwargs: default_conf
|
|
||||||
)
|
|
||||||
mocker.patch('freqtrade.optimize.hyperopt.Hyperopt.start', start_mock)
|
mocker.patch('freqtrade.optimize.hyperopt.Hyperopt.start', start_mock)
|
||||||
patch_exchange(mocker)
|
patch_exchange(mocker)
|
||||||
|
|
||||||
@ -198,10 +189,7 @@ def test_start(mocker, default_conf, caplog) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_start_no_data(mocker, default_conf, caplog) -> None:
|
def test_start_no_data(mocker, default_conf, caplog) -> None:
|
||||||
mocker.patch(
|
patched_configuration_load_config_file(mocker, default_conf)
|
||||||
'freqtrade.configuration.Configuration._load_config_file',
|
|
||||||
lambda *args, **kwargs: default_conf
|
|
||||||
)
|
|
||||||
mocker.patch('freqtrade.optimize.hyperopt.load_data', MagicMock(return_value={}))
|
mocker.patch('freqtrade.optimize.hyperopt.load_data', MagicMock(return_value={}))
|
||||||
mocker.patch(
|
mocker.patch(
|
||||||
'freqtrade.optimize.hyperopt.get_timeframe',
|
'freqtrade.optimize.hyperopt.get_timeframe',
|
||||||
@ -226,10 +214,7 @@ def test_start_no_data(mocker, default_conf, caplog) -> None:
|
|||||||
|
|
||||||
def test_start_failure(mocker, default_conf, caplog) -> None:
|
def test_start_failure(mocker, default_conf, caplog) -> None:
|
||||||
start_mock = MagicMock()
|
start_mock = MagicMock()
|
||||||
mocker.patch(
|
patched_configuration_load_config_file(mocker, default_conf)
|
||||||
'freqtrade.configuration.Configuration._load_config_file',
|
|
||||||
lambda *args, **kwargs: default_conf
|
|
||||||
)
|
|
||||||
mocker.patch('freqtrade.optimize.hyperopt.Hyperopt.start', start_mock)
|
mocker.patch('freqtrade.optimize.hyperopt.Hyperopt.start', start_mock)
|
||||||
patch_exchange(mocker)
|
patch_exchange(mocker)
|
||||||
|
|
||||||
@ -250,10 +235,7 @@ def test_start_failure(mocker, default_conf, caplog) -> None:
|
|||||||
|
|
||||||
def test_start_filelock(mocker, default_conf, caplog) -> None:
|
def test_start_filelock(mocker, default_conf, caplog) -> None:
|
||||||
start_mock = MagicMock(side_effect=Timeout(HYPEROPT_LOCKFILE))
|
start_mock = MagicMock(side_effect=Timeout(HYPEROPT_LOCKFILE))
|
||||||
mocker.patch(
|
patched_configuration_load_config_file(mocker, default_conf)
|
||||||
'freqtrade.configuration.Configuration._load_config_file',
|
|
||||||
lambda *args, **kwargs: default_conf
|
|
||||||
)
|
|
||||||
mocker.patch('freqtrade.optimize.hyperopt.Hyperopt.start', start_mock)
|
mocker.patch('freqtrade.optimize.hyperopt.Hyperopt.start', start_mock)
|
||||||
patch_exchange(mocker)
|
patch_exchange(mocker)
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ from freqtrade.configuration.json_schema import validate_config_schema
|
|||||||
from freqtrade.constants import DEFAULT_DB_DRYRUN_URL, DEFAULT_DB_PROD_URL
|
from freqtrade.constants import DEFAULT_DB_DRYRUN_URL, DEFAULT_DB_PROD_URL
|
||||||
from freqtrade.loggers import _set_loggers
|
from freqtrade.loggers import _set_loggers
|
||||||
from freqtrade.state import RunMode
|
from freqtrade.state import RunMode
|
||||||
from freqtrade.tests.conftest import log_has, log_has_re
|
from freqtrade.tests.conftest import log_has, log_has_re, patched_configuration_open
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="function")
|
@pytest.fixture(scope="function")
|
||||||
@ -51,9 +51,7 @@ def test_load_config_incorrect_stake_amount(default_conf) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_load_config_file(default_conf, mocker, caplog) -> None:
|
def test_load_config_file(default_conf, mocker, caplog) -> None:
|
||||||
file_mock = mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
file_mock = patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
configuration = Configuration(Namespace())
|
configuration = Configuration(Namespace())
|
||||||
validated_conf = configuration._load_config_file('somefile')
|
validated_conf = configuration._load_config_file('somefile')
|
||||||
@ -63,9 +61,7 @@ def test_load_config_file(default_conf, mocker, caplog) -> None:
|
|||||||
|
|
||||||
def test_load_config_max_open_trades_zero(default_conf, mocker, caplog) -> None:
|
def test_load_config_max_open_trades_zero(default_conf, mocker, caplog) -> None:
|
||||||
default_conf['max_open_trades'] = 0
|
default_conf['max_open_trades'] = 0
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
args = Arguments([], '').get_parsed_arg()
|
args = Arguments([], '').get_parsed_arg()
|
||||||
configuration = Configuration(args)
|
configuration = Configuration(args)
|
||||||
@ -87,7 +83,7 @@ def test_load_config_combine_dicts(default_conf, mocker, caplog) -> None:
|
|||||||
config_files = [conf1, conf2]
|
config_files = [conf1, conf2]
|
||||||
|
|
||||||
configsmock = MagicMock(side_effect=config_files)
|
configsmock = MagicMock(side_effect=config_files)
|
||||||
mocker.patch('freqtrade.configuration.Configuration._load_config_file', configsmock)
|
mocker.patch('freqtrade.configuration.configuration.Configuration._load_config_file', configsmock)
|
||||||
|
|
||||||
arg_list = ['-c', 'test_conf.json', '--config', 'test2_conf.json', ]
|
arg_list = ['-c', 'test_conf.json', '--config', 'test2_conf.json', ]
|
||||||
args = Arguments(arg_list, '').get_parsed_arg()
|
args = Arguments(arg_list, '').get_parsed_arg()
|
||||||
@ -107,9 +103,7 @@ def test_load_config_combine_dicts(default_conf, mocker, caplog) -> None:
|
|||||||
|
|
||||||
def test_load_config_max_open_trades_minus_one(default_conf, mocker, caplog) -> None:
|
def test_load_config_max_open_trades_minus_one(default_conf, mocker, caplog) -> None:
|
||||||
default_conf['max_open_trades'] = -1
|
default_conf['max_open_trades'] = -1
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
args = Arguments([], '').get_parsed_arg()
|
args = Arguments([], '').get_parsed_arg()
|
||||||
configuration = Configuration(args)
|
configuration = Configuration(args)
|
||||||
@ -124,7 +118,7 @@ def test_load_config_max_open_trades_minus_one(default_conf, mocker, caplog) ->
|
|||||||
|
|
||||||
def test_load_config_file_exception(mocker) -> None:
|
def test_load_config_file_exception(mocker) -> None:
|
||||||
mocker.patch(
|
mocker.patch(
|
||||||
'freqtrade.configuration.open',
|
'freqtrade.configuration.configuration.open',
|
||||||
MagicMock(side_effect=FileNotFoundError('File not found'))
|
MagicMock(side_effect=FileNotFoundError('File not found'))
|
||||||
)
|
)
|
||||||
configuration = Configuration(Namespace())
|
configuration = Configuration(Namespace())
|
||||||
@ -134,9 +128,7 @@ def test_load_config_file_exception(mocker) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_load_config(default_conf, mocker) -> None:
|
def test_load_config(default_conf, mocker) -> None:
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
args = Arguments([], '').get_parsed_arg()
|
args = Arguments([], '').get_parsed_arg()
|
||||||
configuration = Configuration(args)
|
configuration = Configuration(args)
|
||||||
@ -148,9 +140,8 @@ def test_load_config(default_conf, mocker) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_load_config_with_params(default_conf, mocker) -> None:
|
def test_load_config_with_params(default_conf, mocker) -> None:
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
arglist = [
|
arglist = [
|
||||||
'--dynamic-whitelist', '10',
|
'--dynamic-whitelist', '10',
|
||||||
'--strategy', 'TestStrategy',
|
'--strategy', 'TestStrategy',
|
||||||
@ -171,9 +162,7 @@ def test_load_config_with_params(default_conf, mocker) -> None:
|
|||||||
conf = default_conf.copy()
|
conf = default_conf.copy()
|
||||||
conf["dry_run"] = False
|
conf["dry_run"] = False
|
||||||
conf["db_url"] = "sqlite:///path/to/db.sqlite"
|
conf["db_url"] = "sqlite:///path/to/db.sqlite"
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, conf)
|
||||||
read_data=json.dumps(conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
arglist = [
|
arglist = [
|
||||||
'--strategy', 'TestStrategy',
|
'--strategy', 'TestStrategy',
|
||||||
@ -189,9 +178,7 @@ def test_load_config_with_params(default_conf, mocker) -> None:
|
|||||||
conf = default_conf.copy()
|
conf = default_conf.copy()
|
||||||
conf["dry_run"] = True
|
conf["dry_run"] = True
|
||||||
conf["db_url"] = "sqlite:///path/to/db.sqlite"
|
conf["db_url"] = "sqlite:///path/to/db.sqlite"
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, conf)
|
||||||
read_data=json.dumps(conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
arglist = [
|
arglist = [
|
||||||
'--strategy', 'TestStrategy',
|
'--strategy', 'TestStrategy',
|
||||||
@ -207,9 +194,7 @@ def test_load_config_with_params(default_conf, mocker) -> None:
|
|||||||
conf = default_conf.copy()
|
conf = default_conf.copy()
|
||||||
conf["dry_run"] = False
|
conf["dry_run"] = False
|
||||||
del conf["db_url"]
|
del conf["db_url"]
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, conf)
|
||||||
read_data=json.dumps(conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
arglist = [
|
arglist = [
|
||||||
'--strategy', 'TestStrategy',
|
'--strategy', 'TestStrategy',
|
||||||
@ -227,9 +212,7 @@ def test_load_config_with_params(default_conf, mocker) -> None:
|
|||||||
conf = default_conf.copy()
|
conf = default_conf.copy()
|
||||||
conf["dry_run"] = True
|
conf["dry_run"] = True
|
||||||
conf["db_url"] = DEFAULT_DB_PROD_URL
|
conf["db_url"] = DEFAULT_DB_PROD_URL
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, conf)
|
||||||
read_data=json.dumps(conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
arglist = [
|
arglist = [
|
||||||
'--strategy', 'TestStrategy',
|
'--strategy', 'TestStrategy',
|
||||||
@ -247,9 +230,7 @@ def test_load_custom_strategy(default_conf, mocker) -> None:
|
|||||||
'strategy': 'CustomStrategy',
|
'strategy': 'CustomStrategy',
|
||||||
'strategy_path': '/tmp/strategies',
|
'strategy_path': '/tmp/strategies',
|
||||||
})
|
})
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
args = Arguments([], '').get_parsed_arg()
|
args = Arguments([], '').get_parsed_arg()
|
||||||
configuration = Configuration(args)
|
configuration = Configuration(args)
|
||||||
@ -260,9 +241,8 @@ def test_load_custom_strategy(default_conf, mocker) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_show_info(default_conf, mocker, caplog) -> None:
|
def test_show_info(default_conf, mocker, caplog) -> None:
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
arglist = [
|
arglist = [
|
||||||
'--dynamic-whitelist', '10',
|
'--dynamic-whitelist', '10',
|
||||||
'--strategy', 'TestStrategy',
|
'--strategy', 'TestStrategy',
|
||||||
@ -285,9 +265,8 @@ def test_show_info(default_conf, mocker, caplog) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_setup_configuration_without_arguments(mocker, default_conf, caplog) -> None:
|
def test_setup_configuration_without_arguments(mocker, default_conf, caplog) -> None:
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
arglist = [
|
arglist = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
'--strategy', 'DefaultStrategy',
|
'--strategy', 'DefaultStrategy',
|
||||||
@ -325,10 +304,8 @@ def test_setup_configuration_without_arguments(mocker, default_conf, caplog) ->
|
|||||||
|
|
||||||
|
|
||||||
def test_setup_configuration_with_arguments(mocker, default_conf, caplog) -> None:
|
def test_setup_configuration_with_arguments(mocker, default_conf, caplog) -> None:
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
mocker.patch('freqtrade.configuration.configuration.Configuration._create_datadir', lambda s, c, x: x)
|
||||||
))
|
|
||||||
mocker.patch('freqtrade.configuration.Configuration._create_datadir', lambda s, c, x: x)
|
|
||||||
|
|
||||||
arglist = [
|
arglist = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
@ -391,9 +368,7 @@ def test_setup_configuration_with_stratlist(mocker, default_conf, caplog) -> Non
|
|||||||
"""
|
"""
|
||||||
Test setup_configuration() function
|
Test setup_configuration() function
|
||||||
"""
|
"""
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
arglist = [
|
arglist = [
|
||||||
'--config', 'config.json',
|
'--config', 'config.json',
|
||||||
@ -441,9 +416,8 @@ def test_setup_configuration_with_stratlist(mocker, default_conf, caplog) -> Non
|
|||||||
|
|
||||||
|
|
||||||
def test_hyperopt_with_arguments(mocker, default_conf, caplog) -> None:
|
def test_hyperopt_with_arguments(mocker, default_conf, caplog) -> None:
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
arglist = [
|
arglist = [
|
||||||
'hyperopt',
|
'hyperopt',
|
||||||
'--epochs', '10',
|
'--epochs', '10',
|
||||||
@ -517,8 +491,8 @@ def test_check_exchange(default_conf, caplog) -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_cli_verbose_with_params(default_conf, mocker, caplog) -> None:
|
def test_cli_verbose_with_params(default_conf, mocker, caplog) -> None:
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)))
|
|
||||||
# Prevent setting loggers
|
# Prevent setting loggers
|
||||||
mocker.patch('freqtrade.loggers._set_loggers', MagicMock)
|
mocker.patch('freqtrade.loggers._set_loggers', MagicMock)
|
||||||
arglist = ['-vvv']
|
arglist = ['-vvv']
|
||||||
@ -570,8 +544,7 @@ def test_set_loggers() -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_set_logfile(default_conf, mocker):
|
def test_set_logfile(default_conf, mocker):
|
||||||
mocker.patch('freqtrade.configuration.open',
|
patched_configuration_open(mocker, default_conf)
|
||||||
mocker.mock_open(read_data=json.dumps(default_conf)))
|
|
||||||
|
|
||||||
arglist = [
|
arglist = [
|
||||||
'--logfile', 'test_file.log',
|
'--logfile', 'test_file.log',
|
||||||
@ -588,9 +561,7 @@ def test_set_logfile(default_conf, mocker):
|
|||||||
|
|
||||||
def test_load_config_warn_forcebuy(default_conf, mocker, caplog) -> None:
|
def test_load_config_warn_forcebuy(default_conf, mocker, caplog) -> None:
|
||||||
default_conf['forcebuy_enable'] = True
|
default_conf['forcebuy_enable'] = True
|
||||||
mocker.patch('freqtrade.configuration.open', mocker.mock_open(
|
patched_configuration_open(mocker, default_conf)
|
||||||
read_data=json.dumps(default_conf)
|
|
||||||
))
|
|
||||||
|
|
||||||
args = Arguments([], '').get_parsed_arg()
|
args = Arguments([], '').get_parsed_arg()
|
||||||
configuration = Configuration(args)
|
configuration = Configuration(args)
|
||||||
|
@ -10,7 +10,8 @@ from freqtrade.configuration import Arguments
|
|||||||
from freqtrade.freqtradebot import FreqtradeBot
|
from freqtrade.freqtradebot import FreqtradeBot
|
||||||
from freqtrade.main import main
|
from freqtrade.main import main
|
||||||
from freqtrade.state import State
|
from freqtrade.state import State
|
||||||
from freqtrade.tests.conftest import log_has, patch_exchange
|
from freqtrade.tests.conftest import (log_has, patch_exchange,
|
||||||
|
patched_configuration_load_config_file)
|
||||||
from freqtrade.worker import Worker
|
from freqtrade.worker import Worker
|
||||||
|
|
||||||
|
|
||||||
@ -50,10 +51,7 @@ def test_main_fatal_exception(mocker, default_conf, caplog) -> None:
|
|||||||
patch_exchange(mocker)
|
patch_exchange(mocker)
|
||||||
mocker.patch('freqtrade.freqtradebot.FreqtradeBot.cleanup', MagicMock())
|
mocker.patch('freqtrade.freqtradebot.FreqtradeBot.cleanup', MagicMock())
|
||||||
mocker.patch('freqtrade.worker.Worker._worker', MagicMock(side_effect=Exception))
|
mocker.patch('freqtrade.worker.Worker._worker', MagicMock(side_effect=Exception))
|
||||||
mocker.patch(
|
patched_configuration_load_config_file(mocker, default_conf)
|
||||||
'freqtrade.configuration.Configuration._load_config_file',
|
|
||||||
lambda *args, **kwargs: default_conf
|
|
||||||
)
|
|
||||||
mocker.patch('freqtrade.freqtradebot.RPCManager', MagicMock())
|
mocker.patch('freqtrade.freqtradebot.RPCManager', MagicMock())
|
||||||
mocker.patch('freqtrade.freqtradebot.persistence.init', MagicMock())
|
mocker.patch('freqtrade.freqtradebot.persistence.init', MagicMock())
|
||||||
|
|
||||||
@ -70,10 +68,7 @@ def test_main_keyboard_interrupt(mocker, default_conf, caplog) -> None:
|
|||||||
patch_exchange(mocker)
|
patch_exchange(mocker)
|
||||||
mocker.patch('freqtrade.freqtradebot.FreqtradeBot.cleanup', MagicMock())
|
mocker.patch('freqtrade.freqtradebot.FreqtradeBot.cleanup', MagicMock())
|
||||||
mocker.patch('freqtrade.worker.Worker._worker', MagicMock(side_effect=KeyboardInterrupt))
|
mocker.patch('freqtrade.worker.Worker._worker', MagicMock(side_effect=KeyboardInterrupt))
|
||||||
mocker.patch(
|
patched_configuration_load_config_file(mocker, default_conf)
|
||||||
'freqtrade.configuration.Configuration._load_config_file',
|
|
||||||
lambda *args, **kwargs: default_conf
|
|
||||||
)
|
|
||||||
mocker.patch('freqtrade.freqtradebot.RPCManager', MagicMock())
|
mocker.patch('freqtrade.freqtradebot.RPCManager', MagicMock())
|
||||||
mocker.patch('freqtrade.freqtradebot.persistence.init', MagicMock())
|
mocker.patch('freqtrade.freqtradebot.persistence.init', MagicMock())
|
||||||
|
|
||||||
@ -93,10 +88,7 @@ def test_main_operational_exception(mocker, default_conf, caplog) -> None:
|
|||||||
'freqtrade.worker.Worker._worker',
|
'freqtrade.worker.Worker._worker',
|
||||||
MagicMock(side_effect=OperationalException('Oh snap!'))
|
MagicMock(side_effect=OperationalException('Oh snap!'))
|
||||||
)
|
)
|
||||||
mocker.patch(
|
patched_configuration_load_config_file(mocker, default_conf)
|
||||||
'freqtrade.configuration.Configuration._load_config_file',
|
|
||||||
lambda *args, **kwargs: default_conf
|
|
||||||
)
|
|
||||||
mocker.patch('freqtrade.freqtradebot.RPCManager', MagicMock())
|
mocker.patch('freqtrade.freqtradebot.RPCManager', MagicMock())
|
||||||
mocker.patch('freqtrade.freqtradebot.persistence.init', MagicMock())
|
mocker.patch('freqtrade.freqtradebot.persistence.init', MagicMock())
|
||||||
|
|
||||||
@ -118,10 +110,7 @@ def test_main_reload_conf(mocker, default_conf, caplog) -> None:
|
|||||||
State.RUNNING,
|
State.RUNNING,
|
||||||
OperationalException("Oh snap!")])
|
OperationalException("Oh snap!")])
|
||||||
mocker.patch('freqtrade.worker.Worker._worker', worker_mock)
|
mocker.patch('freqtrade.worker.Worker._worker', worker_mock)
|
||||||
mocker.patch(
|
patched_configuration_load_config_file(mocker, default_conf)
|
||||||
'freqtrade.configuration.Configuration._load_config_file',
|
|
||||||
lambda *args, **kwargs: default_conf
|
|
||||||
)
|
|
||||||
reconfigure_mock = mocker.patch('freqtrade.main.Worker._reconfigure', MagicMock())
|
reconfigure_mock = mocker.patch('freqtrade.main.Worker._reconfigure', MagicMock())
|
||||||
|
|
||||||
mocker.patch('freqtrade.freqtradebot.RPCManager', MagicMock())
|
mocker.patch('freqtrade.freqtradebot.RPCManager', MagicMock())
|
||||||
@ -145,10 +134,7 @@ def test_reconfigure(mocker, default_conf) -> None:
|
|||||||
'freqtrade.worker.Worker._worker',
|
'freqtrade.worker.Worker._worker',
|
||||||
MagicMock(side_effect=OperationalException('Oh snap!'))
|
MagicMock(side_effect=OperationalException('Oh snap!'))
|
||||||
)
|
)
|
||||||
mocker.patch(
|
patched_configuration_load_config_file(mocker, default_conf)
|
||||||
'freqtrade.configuration.Configuration._load_config_file',
|
|
||||||
lambda *args, **kwargs: default_conf
|
|
||||||
)
|
|
||||||
mocker.patch('freqtrade.freqtradebot.RPCManager', MagicMock())
|
mocker.patch('freqtrade.freqtradebot.RPCManager', MagicMock())
|
||||||
mocker.patch('freqtrade.freqtradebot.persistence.init', MagicMock())
|
mocker.patch('freqtrade.freqtradebot.persistence.init', MagicMock())
|
||||||
|
|
||||||
@ -159,10 +145,7 @@ def test_reconfigure(mocker, default_conf) -> None:
|
|||||||
# Renew mock to return modified data
|
# Renew mock to return modified data
|
||||||
conf = deepcopy(default_conf)
|
conf = deepcopy(default_conf)
|
||||||
conf['stake_amount'] += 1
|
conf['stake_amount'] += 1
|
||||||
mocker.patch(
|
patched_configuration_load_config_file(mocker, conf)
|
||||||
'freqtrade.configuration.Configuration._load_config_file',
|
|
||||||
lambda *args, **kwargs: conf
|
|
||||||
)
|
|
||||||
|
|
||||||
worker._config = conf
|
worker._config = conf
|
||||||
# reconfigure should return a new instance
|
# reconfigure should return a new instance
|
||||||
|
Loading…
Reference in New Issue
Block a user