refactor: move config deployment to it's own file

This commit is contained in:
Matthias
2024-10-05 13:00:11 +02:00
parent 3fe97e1709
commit 092275a981
3 changed files with 265 additions and 252 deletions

View File

@@ -4,10 +4,10 @@ from unittest.mock import MagicMock
import pytest
import rapidjson
from freqtrade.commands.build_config_commands import (
from freqtrade.commands.build_config_commands import start_new_config
from freqtrade.configuration.deploy_config import (
ask_user_config,
ask_user_overwrite,
start_new_config,
validate_is_float,
validate_is_int,
)
@@ -39,7 +39,7 @@ def test_start_new_config(mocker, caplog, exchange):
wt_mock = mocker.patch.object(Path, "write_text", MagicMock())
mocker.patch.object(Path, "exists", MagicMock(return_value=True))
unlink_mock = mocker.patch.object(Path, "unlink", MagicMock())
mocker.patch("freqtrade.commands.build_config_commands.ask_user_overwrite", return_value=True)
mocker.patch("freqtrade.configuration.deploy_config.ask_user_overwrite", return_value=True)
sample_selections = {
"max_open_trades": 3,
@@ -62,7 +62,7 @@ def test_start_new_config(mocker, caplog, exchange):
"api_server_password": "MoneyMachine",
}
mocker.patch(
"freqtrade.commands.build_config_commands.ask_user_config", return_value=sample_selections
"freqtrade.configuration.deploy_config.ask_user_config", return_value=sample_selections
)
args = ["new-config", "--config", "coolconfig.json"]
start_new_config(get_args(args))
@@ -80,7 +80,7 @@ def test_start_new_config(mocker, caplog, exchange):
def test_start_new_config_exists(mocker, caplog):
mocker.patch.object(Path, "exists", MagicMock(return_value=True))
mocker.patch("freqtrade.commands.build_config_commands.ask_user_overwrite", return_value=False)
mocker.patch("freqtrade.configuration.deploy_config.ask_user_overwrite", return_value=False)
args = ["new-config", "--config", "coolconfig.json"]
with pytest.raises(OperationalException, match=r"Configuration .* already exists\."):
start_new_config(get_args(args))
@@ -91,14 +91,14 @@ def test_ask_user_overwrite(mocker):
Once https://github.com/tmbo/questionary/issues/35 is implemented, improve this test.
"""
prompt_mock = mocker.patch(
"freqtrade.commands.build_config_commands.prompt", return_value={"overwrite": False}
"freqtrade.configuration.deploy_config.prompt", return_value={"overwrite": False}
)
assert not ask_user_overwrite(Path("test.json"))
assert prompt_mock.call_count == 1
prompt_mock.reset_mock()
prompt_mock = mocker.patch(
"freqtrade.commands.build_config_commands.prompt", return_value={"overwrite": True}
"freqtrade.configuration.deploy_config.prompt", return_value={"overwrite": True}
)
assert ask_user_overwrite(Path("test.json"))
assert prompt_mock.call_count == 1
@@ -109,13 +109,13 @@ def test_ask_user_config(mocker):
Once https://github.com/tmbo/questionary/issues/35 is implemented, improve this test.
"""
prompt_mock = mocker.patch(
"freqtrade.commands.build_config_commands.prompt", return_value={"overwrite": False}
"freqtrade.configuration.deploy_config.prompt", return_value={"overwrite": False}
)
answers = ask_user_config()
assert isinstance(answers, dict)
assert prompt_mock.call_count == 1
prompt_mock = mocker.patch("freqtrade.commands.build_config_commands.prompt", return_value={})
prompt_mock = mocker.patch("freqtrade.configuration.deploy_config.prompt", return_value={})
with pytest.raises(OperationalException, match=r"User interrupted interactive questions\."):
ask_user_config()