Add simple method to add deprecations to cmd line options
This commit is contained in:
parent
e8843c31e6
commit
7ee971c3e3
@ -4,6 +4,7 @@ This module contains the configuration class
|
||||
import json
|
||||
import logging
|
||||
import sys
|
||||
import warnings
|
||||
from argparse import Namespace
|
||||
from typing import Any, Callable, Dict, Optional
|
||||
|
||||
@ -15,7 +16,6 @@ from freqtrade.loggers import setup_logging
|
||||
from freqtrade.misc import deep_merge_dicts
|
||||
from freqtrade.state import RunMode
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@ -187,7 +187,8 @@ class Configuration(object):
|
||||
'Using ticker_interval: {} ...')
|
||||
|
||||
self._args_to_config(config, argname='live',
|
||||
logstring='Parameter -l/--live detected ...')
|
||||
logstring='Parameter -l/--live detected ...',
|
||||
deprecated_msg='--live will be removed soon.')
|
||||
|
||||
self._args_to_config(config, argname='position_stacking',
|
||||
logstring='Parameter --enable-position-stacking detected ...')
|
||||
@ -323,7 +324,8 @@ class Configuration(object):
|
||||
'to be greater than trailing_stop_positive_offset in your config.')
|
||||
|
||||
def _args_to_config(self, config: Dict[str, Any], argname: str,
|
||||
logstring: str, logfun: Optional[Callable] = None) -> None:
|
||||
logstring: str, logfun: Optional[Callable] = None,
|
||||
deprecated_msg: Optional[str] = None) -> None:
|
||||
"""
|
||||
:param config: Configuration dictionary
|
||||
:param argname: Argumentname in self.args - will be copied to config dict.
|
||||
@ -340,3 +342,5 @@ class Configuration(object):
|
||||
logger.info(logstring.format(logfun(config[argname])))
|
||||
else:
|
||||
logger.info(logstring.format(config[argname]))
|
||||
if deprecated_msg:
|
||||
warnings.warn(f"DEPRECATED: {deprecated_msg}", DeprecationWarning)
|
||||
|
@ -1,10 +1,11 @@
|
||||
# pragma pylint: disable=missing-docstring, protected-access, invalid-name
|
||||
import json
|
||||
import logging
|
||||
import warnings
|
||||
from argparse import Namespace
|
||||
from copy import deepcopy
|
||||
from unittest.mock import MagicMock
|
||||
from pathlib import Path
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
import pytest
|
||||
from jsonschema import Draft4Validator, ValidationError, validate
|
||||
@ -62,6 +63,32 @@ def test_load_config_file(default_conf, mocker, caplog) -> None:
|
||||
assert validated_conf.items() >= default_conf.items()
|
||||
|
||||
|
||||
def test__args_to_config(caplog):
|
||||
|
||||
arg_list = ['--strategy-path', 'TestTest']
|
||||
args = Arguments(arg_list, '').get_parsed_arg()
|
||||
configuration = Configuration(args)
|
||||
config = {}
|
||||
with warnings.catch_warnings(record=True) as w:
|
||||
# No warnings ...
|
||||
configuration._args_to_config(config, argname="strategy_path", logstring="DeadBeef")
|
||||
assert len(w) == 0
|
||||
assert log_has("DeadBeef", caplog.record_tuples)
|
||||
assert config['strategy_path'] == "TestTest"
|
||||
|
||||
configuration = Configuration(args)
|
||||
config = {}
|
||||
with warnings.catch_warnings(record=True) as w:
|
||||
# Deprecation warnings!
|
||||
configuration._args_to_config(config, argname="strategy_path", logstring="DeadBeef",
|
||||
deprecated_msg="Going away soon!")
|
||||
assert len(w) == 1
|
||||
assert issubclass(w[-1].category, DeprecationWarning)
|
||||
assert "DEPRECATED: Going away soon!" in str(w[-1].message)
|
||||
assert log_has("DeadBeef", caplog.record_tuples)
|
||||
assert config['strategy_path'] == "TestTest"
|
||||
|
||||
|
||||
def test_load_config_max_open_trades_zero(default_conf, mocker, caplog) -> None:
|
||||
default_conf['max_open_trades'] = 0
|
||||
patched_configuration_load_config_file(mocker, default_conf)
|
||||
|
Loading…
Reference in New Issue
Block a user