mirror of
https://github.com/freqtrade/freqtrade.git
synced 2024-11-10 10:21:59 +00:00
tests adjusted
This commit is contained in:
parent
ad6a249832
commit
28d8fc871a
30
freqtrade/configuration/load_config.py
Normal file
30
freqtrade/configuration/load_config.py
Normal file
|
@ -0,0 +1,30 @@
|
|||
"""
|
||||
This module contain functions to load the configuration file
|
||||
"""
|
||||
import json
|
||||
import logging
|
||||
import sys
|
||||
from typing import Any, Dict
|
||||
|
||||
from freqtrade import OperationalException
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def load_config_file(path: str) -> Dict[str, Any]:
|
||||
"""
|
||||
Loads a config file from the given path
|
||||
:param path: path as str
|
||||
:return: configuration as dictionary
|
||||
"""
|
||||
try:
|
||||
# Read config from stdin if requested in the options
|
||||
with open(path) if path != '-' else sys.stdin as file:
|
||||
config = json.load(file)
|
||||
except FileNotFoundError:
|
||||
raise OperationalException(
|
||||
f'Config file "{path}" not found!'
|
||||
' Please create a config file or check whether it exists.')
|
||||
|
||||
return config
|
|
@ -45,7 +45,7 @@ def get_args(args):
|
|||
|
||||
def patched_configuration_load_config_file(mocker, config) -> None:
|
||||
mocker.patch(
|
||||
'freqtrade.configuration.configuration.Configuration._load_config_file',
|
||||
'freqtrade.configuration.load_config.load_config_file',
|
||||
lambda *args, **kwargs: config
|
||||
)
|
||||
|
||||
|
|
|
@ -15,6 +15,7 @@ from freqtrade.configuration import Arguments, Configuration
|
|||
from freqtrade.configuration.check_exchange import check_exchange
|
||||
from freqtrade.configuration.create_datadir import create_datadir
|
||||
from freqtrade.configuration.json_schema import validate_config_schema
|
||||
from freqtrade.configuration.load_config import load_config_file
|
||||
from freqtrade.constants import DEFAULT_DB_DRYRUN_URL, DEFAULT_DB_PROD_URL
|
||||
from freqtrade.loggers import _set_loggers
|
||||
from freqtrade.state import RunMode
|
||||
|
@ -26,8 +27,7 @@ from freqtrade.tests.conftest import (log_has, log_has_re,
|
|||
def all_conf():
|
||||
config_file = Path(__file__).parents[2] / "config_full.json.example"
|
||||
print(config_file)
|
||||
configuration = Configuration(Namespace())
|
||||
conf = configuration._load_config_file(str(config_file))
|
||||
conf = load_config_file(str(config_file))
|
||||
return conf
|
||||
|
||||
|
||||
|
@ -53,12 +53,11 @@ def test_load_config_incorrect_stake_amount(default_conf) -> None:
|
|||
|
||||
|
||||
def test_load_config_file(default_conf, mocker, caplog) -> None:
|
||||
file_mock = mocker.patch('freqtrade.configuration.configuration.open', mocker.mock_open(
|
||||
file_mock = mocker.patch('freqtrade.configuration.load_config.open', mocker.mock_open(
|
||||
read_data=json.dumps(default_conf)
|
||||
))
|
||||
|
||||
configuration = Configuration(Namespace())
|
||||
validated_conf = configuration._load_config_file('somefile')
|
||||
validated_conf = load_config_file('somefile')
|
||||
assert file_mock.call_count == 1
|
||||
assert validated_conf.items() >= default_conf.items()
|
||||
|
||||
|
@ -114,7 +113,7 @@ def test_load_config_combine_dicts(default_conf, mocker, caplog) -> None:
|
|||
|
||||
configsmock = MagicMock(side_effect=config_files)
|
||||
mocker.patch(
|
||||
'freqtrade.configuration.configuration.Configuration._load_config_file',
|
||||
'freqtrade.configuration.load_config.load_config_file',
|
||||
configsmock
|
||||
)
|
||||
|
||||
|
@ -154,10 +153,9 @@ def test_load_config_file_exception(mocker) -> None:
|
|||
'freqtrade.configuration.configuration.open',
|
||||
MagicMock(side_effect=FileNotFoundError('File not found'))
|
||||
)
|
||||
configuration = Configuration(Namespace())
|
||||
|
||||
with pytest.raises(OperationalException, match=r'.*Config file "somefile" not found!*'):
|
||||
configuration._load_config_file('somefile')
|
||||
load_config_file('somefile')
|
||||
|
||||
|
||||
def test_load_config(default_conf, mocker) -> None:
|
||||
|
|
Loading…
Reference in New Issue
Block a user