diff --git a/tests/commands/test_build_config.py b/tests/commands/test_build_config.py index f799be3ba..637ee9b23 100644 --- a/tests/commands/test_build_config.py +++ b/tests/commands/test_build_config.py @@ -4,9 +4,13 @@ from unittest.mock import MagicMock import pytest import rapidjson -from freqtrade.commands.build_config_commands import (ask_user_config, ask_user_overwrite, - start_new_config, validate_is_float, - validate_is_int) +from freqtrade.commands.build_config_commands import ( + ask_user_config, + ask_user_overwrite, + start_new_config, + validate_is_float, + validate_is_int, +) from freqtrade.exceptions import OperationalException from tests.conftest import get_args, log_has_re diff --git a/tests/commands/test_commands.py b/tests/commands/test_commands.py index 630950c81..4ec530915 100644 --- a/tests/commands/test_commands.py +++ b/tests/commands/test_commands.py @@ -8,16 +8,35 @@ from zipfile import ZipFile import pytest -from freqtrade.commands import (start_backtesting_show, start_convert_data, start_convert_trades, - start_create_userdir, start_download_data, start_hyperopt_list, - start_hyperopt_show, start_install_ui, start_list_data, - start_list_exchanges, start_list_markets, start_list_strategies, - start_list_timeframes, start_new_strategy, start_show_config, - start_show_trades, start_strategy_update, start_test_pairlist, - start_trading, start_webserver) +from freqtrade.commands import ( + start_backtesting_show, + start_convert_data, + start_convert_trades, + start_create_userdir, + start_download_data, + start_hyperopt_list, + start_hyperopt_show, + start_install_ui, + start_list_data, + start_list_exchanges, + start_list_markets, + start_list_strategies, + start_list_timeframes, + start_new_strategy, + start_show_config, + start_show_trades, + start_strategy_update, + start_test_pairlist, + start_trading, + start_webserver, +) from freqtrade.commands.db_commands import start_convert_db -from freqtrade.commands.deploy_commands import (clean_ui_subdir, download_and_install_ui, - get_ui_download_url, read_ui_version) +from freqtrade.commands.deploy_commands import ( + clean_ui_subdir, + download_and_install_ui, + get_ui_download_url, + read_ui_version, +) from freqtrade.commands.list_commands import start_list_freqAI_models from freqtrade.configuration import setup_utils_configuration from freqtrade.enums import RunMode @@ -25,8 +44,16 @@ from freqtrade.exceptions import OperationalException from freqtrade.persistence.models import init_db from freqtrade.persistence.pairlock_middleware import PairLocks from freqtrade.util import dt_floor_day, dt_now, dt_utc -from tests.conftest import (CURRENT_TEST_STRATEGY, EXMS, create_mock_trades, get_args, log_has, - log_has_re, patch_exchange, patched_configuration_load_config_file) +from tests.conftest import ( + CURRENT_TEST_STRATEGY, + EXMS, + create_mock_trades, + get_args, + log_has, + log_has_re, + patch_exchange, + patched_configuration_load_config_file, +) from tests.conftest_trades import MOCK_TRADE_COUNT diff --git a/tests/conftest.py b/tests/conftest.py index 900b89c39..8bbb38af3 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -24,11 +24,25 @@ from freqtrade.persistence import LocalTrade, Order, Trade, init_db from freqtrade.resolvers import ExchangeResolver from freqtrade.util import dt_now, dt_ts from freqtrade.worker import Worker -from tests.conftest_trades import (leverage_trade, mock_trade_1, mock_trade_2, mock_trade_3, - mock_trade_4, mock_trade_5, mock_trade_6, short_trade) -from tests.conftest_trades_usdt import (mock_trade_usdt_1, mock_trade_usdt_2, mock_trade_usdt_3, - mock_trade_usdt_4, mock_trade_usdt_5, mock_trade_usdt_6, - mock_trade_usdt_7) +from tests.conftest_trades import ( + leverage_trade, + mock_trade_1, + mock_trade_2, + mock_trade_3, + mock_trade_4, + mock_trade_5, + mock_trade_6, + short_trade, +) +from tests.conftest_trades_usdt import ( + mock_trade_usdt_1, + mock_trade_usdt_2, + mock_trade_usdt_3, + mock_trade_usdt_4, + mock_trade_usdt_5, + mock_trade_usdt_6, + mock_trade_usdt_7, +) logging.getLogger('').setLevel(logging.INFO) diff --git a/tests/data/test_btanalysis.py b/tests/data/test_btanalysis.py index 7d7a97331..430e1e4c5 100644 --- a/tests/data/test_btanalysis.py +++ b/tests/data/test_btanalysis.py @@ -7,16 +7,32 @@ from pandas import DataFrame, DateOffset, Timestamp, to_datetime from freqtrade.configuration import TimeRange from freqtrade.constants import LAST_BT_RESULT_FN -from freqtrade.data.btanalysis import (BT_DATA_COLUMNS, analyze_trade_parallelism, - extract_trades_of_period, get_latest_backtest_filename, - get_latest_hyperopt_file, load_backtest_data, - load_backtest_metadata, load_trades, load_trades_from_db) +from freqtrade.data.btanalysis import ( + BT_DATA_COLUMNS, + analyze_trade_parallelism, + extract_trades_of_period, + get_latest_backtest_filename, + get_latest_hyperopt_file, + load_backtest_data, + load_backtest_metadata, + load_trades, + load_trades_from_db, +) from freqtrade.data.history import load_data, load_pair_history -from freqtrade.data.metrics import (calculate_cagr, calculate_calmar, calculate_csum, - calculate_expectancy, calculate_market_change, - calculate_max_drawdown, calculate_sharpe, calculate_sortino, - calculate_underwater, combine_dataframes_with_mean, - combined_dataframes_with_rel_mean, create_cum_profit) +from freqtrade.data.metrics import ( + calculate_cagr, + calculate_calmar, + calculate_csum, + calculate_expectancy, + calculate_market_change, + calculate_max_drawdown, + calculate_sharpe, + calculate_sortino, + calculate_underwater, + combine_dataframes_with_mean, + combined_dataframes_with_rel_mean, + create_cum_profit, +) from freqtrade.exceptions import OperationalException from freqtrade.util import dt_utc from tests.conftest import CURRENT_TEST_STRATEGY, create_mock_trades diff --git a/tests/data/test_converter.py b/tests/data/test_converter.py index d6f88405b..112a99b3c 100644 --- a/tests/data/test_converter.py +++ b/tests/data/test_converter.py @@ -8,13 +8,24 @@ import pytest from pandas.testing import assert_frame_equal from freqtrade.configuration.timerange import TimeRange -from freqtrade.data.converter import (convert_ohlcv_format, convert_trades_format, - convert_trades_to_ohlcv, ohlcv_fill_up_missing_data, - ohlcv_to_dataframe, reduce_dataframe_footprint, - trades_df_remove_duplicates, trades_dict_to_list, - trades_to_ohlcv, trim_dataframe) -from freqtrade.data.history import (get_timerange, load_data, load_pair_history, - validate_backtest_data) +from freqtrade.data.converter import ( + convert_ohlcv_format, + convert_trades_format, + convert_trades_to_ohlcv, + ohlcv_fill_up_missing_data, + ohlcv_to_dataframe, + reduce_dataframe_footprint, + trades_df_remove_duplicates, + trades_dict_to_list, + trades_to_ohlcv, + trim_dataframe, +) +from freqtrade.data.history import ( + get_timerange, + load_data, + load_pair_history, + validate_backtest_data, +) from freqtrade.data.history.datahandlers import IDataHandler from freqtrade.enums import CandleType from freqtrade.exchange import timeframe_to_minutes, timeframe_to_seconds diff --git a/tests/data/test_datahandler.py b/tests/data/test_datahandler.py index 97c9e29ac..20f83c4ac 100644 --- a/tests/data/test_datahandler.py +++ b/tests/data/test_datahandler.py @@ -13,8 +13,11 @@ from freqtrade.configuration import TimeRange from freqtrade.constants import AVAILABLE_DATAHANDLERS from freqtrade.data.history.datahandlers.featherdatahandler import FeatherDataHandler from freqtrade.data.history.datahandlers.hdf5datahandler import HDF5DataHandler -from freqtrade.data.history.datahandlers.idatahandler import (IDataHandler, get_datahandler, - get_datahandlerclass) +from freqtrade.data.history.datahandlers.idatahandler import ( + IDataHandler, + get_datahandler, + get_datahandlerclass, +) from freqtrade.data.history.datahandlers.jsondatahandler import JsonDataHandler, JsonGzDataHandler from freqtrade.data.history.datahandlers.parquetdatahandler import ParquetDataHandler from freqtrade.enums import CandleType, TradingMode diff --git a/tests/data/test_history.py b/tests/data/test_history.py index f95b05835..a816e2a5e 100644 --- a/tests/data/test_history.py +++ b/tests/data/test_history.py @@ -17,19 +17,31 @@ from freqtrade.constants import DATETIME_PRINT_FORMAT from freqtrade.data.converter import ohlcv_to_dataframe from freqtrade.data.history import get_datahandler from freqtrade.data.history.datahandlers.jsondatahandler import JsonDataHandler, JsonGzDataHandler -from freqtrade.data.history.history_utils import (_download_pair_history, _download_trades_history, - _load_cached_data_for_updating, get_timerange, - load_data, load_pair_history, - refresh_backtest_ohlcv_data, - refresh_backtest_trades_data, refresh_data, - validate_backtest_data) +from freqtrade.data.history.history_utils import ( + _download_pair_history, + _download_trades_history, + _load_cached_data_for_updating, + get_timerange, + load_data, + load_pair_history, + refresh_backtest_ohlcv_data, + refresh_backtest_trades_data, + refresh_data, + validate_backtest_data, +) from freqtrade.enums import CandleType, TradingMode from freqtrade.exchange import timeframe_to_minutes from freqtrade.misc import file_dump_json from freqtrade.resolvers import StrategyResolver from freqtrade.util import dt_ts, dt_utc -from tests.conftest import (CURRENT_TEST_STRATEGY, EXMS, get_patched_exchange, log_has, log_has_re, - patch_exchange) +from tests.conftest import ( + CURRENT_TEST_STRATEGY, + EXMS, + get_patched_exchange, + log_has, + log_has_re, + patch_exchange, +) def _clean_test_file(file: Path) -> None: diff --git a/tests/edge/test_edge.py b/tests/edge/test_edge.py index 53840b190..13558d3b8 100644 --- a/tests/edge/test_edge.py +++ b/tests/edge/test_edge.py @@ -16,8 +16,12 @@ from freqtrade.enums import ExitType from freqtrade.exceptions import OperationalException from freqtrade.util.datetime_helpers import dt_ts, dt_utc from tests.conftest import EXMS, get_patched_freqtradebot, log_has -from tests.optimize import (BTContainer, BTrade, _build_backtest_dataframe, - _get_frame_time_from_offset) +from tests.optimize import ( + BTContainer, + BTrade, + _build_backtest_dataframe, + _get_frame_time_from_offset, +) # Cases to be tested: diff --git a/tests/exchange/test_exchange.py b/tests/exchange/test_exchange.py index 615e119f4..aab0c9109 100644 --- a/tests/exchange/test_exchange.py +++ b/tests/exchange/test_exchange.py @@ -11,17 +11,42 @@ from numpy import NaN from pandas import DataFrame from freqtrade.enums import CandleType, MarginMode, RunMode, TradingMode -from freqtrade.exceptions import (ConfigurationError, DDosProtection, DependencyException, - ExchangeError, InsufficientFundsError, InvalidOrderException, - OperationalException, PricingError, TemporaryError) -from freqtrade.exchange import (Binance, Bybit, Exchange, Kraken, market_is_active, - timeframe_to_prev_date) -from freqtrade.exchange.common import (API_FETCH_ORDER_RETRY_COUNT, API_RETRY_COUNT, - calculate_backoff, remove_exchange_credentials) +from freqtrade.exceptions import ( + ConfigurationError, + DDosProtection, + DependencyException, + ExchangeError, + InsufficientFundsError, + InvalidOrderException, + OperationalException, + PricingError, + TemporaryError, +) +from freqtrade.exchange import ( + Binance, + Bybit, + Exchange, + Kraken, + market_is_active, + timeframe_to_prev_date, +) +from freqtrade.exchange.common import ( + API_FETCH_ORDER_RETRY_COUNT, + API_RETRY_COUNT, + calculate_backoff, + remove_exchange_credentials, +) from freqtrade.resolvers.exchange_resolver import ExchangeResolver from freqtrade.util import dt_now, dt_ts -from tests.conftest import (EXMS, generate_test_data_raw, get_mock_coro, get_patched_exchange, - log_has, log_has_re, num_log_has_re) +from tests.conftest import ( + EXMS, + generate_test_data_raw, + get_mock_coro, + get_patched_exchange, + log_has, + log_has_re, + num_log_has_re, +) # Make sure to always keep one exchange here which is NOT subclassed!! diff --git a/tests/exchange/test_exchange_utils.py b/tests/exchange/test_exchange_utils.py index 8ae81f814..ae8f99932 100644 --- a/tests/exchange/test_exchange_utils.py +++ b/tests/exchange/test_exchange_utils.py @@ -2,15 +2,30 @@ from datetime import datetime, timedelta, timezone import pytest -from ccxt import (DECIMAL_PLACES, ROUND, ROUND_DOWN, ROUND_UP, SIGNIFICANT_DIGITS, TICK_SIZE, - TRUNCATE) +from ccxt import ( + DECIMAL_PLACES, + ROUND, + ROUND_DOWN, + ROUND_UP, + SIGNIFICANT_DIGITS, + TICK_SIZE, + TRUNCATE, +) from freqtrade.enums import RunMode from freqtrade.exceptions import OperationalException -from freqtrade.exchange import (amount_to_contract_precision, amount_to_precision, - date_minus_candles, price_to_precision, timeframe_to_minutes, - timeframe_to_msecs, timeframe_to_next_date, timeframe_to_prev_date, - timeframe_to_resample_freq, timeframe_to_seconds) +from freqtrade.exchange import ( + amount_to_contract_precision, + amount_to_precision, + date_minus_candles, + price_to_precision, + timeframe_to_minutes, + timeframe_to_msecs, + timeframe_to_next_date, + timeframe_to_prev_date, + timeframe_to_resample_freq, + timeframe_to_seconds, +) from freqtrade.exchange.check_exchange import check_exchange from tests.conftest import log_has_re diff --git a/tests/freqai/test_freqai_backtesting.py b/tests/freqai/test_freqai_backtesting.py index 808f37ce5..6dad158fd 100644 --- a/tests/freqai/test_freqai_backtesting.py +++ b/tests/freqai/test_freqai_backtesting.py @@ -14,8 +14,14 @@ from freqtrade.enums.candletype import CandleType from freqtrade.exceptions import OperationalException from freqtrade.freqai.data_kitchen import FreqaiDataKitchen from freqtrade.optimize.backtesting import Backtesting -from tests.conftest import (CURRENT_TEST_STRATEGY, get_args, get_patched_exchange, log_has_re, - patch_exchange, patched_configuration_load_config_file) +from tests.conftest import ( + CURRENT_TEST_STRATEGY, + get_args, + get_patched_exchange, + log_has_re, + patch_exchange, + patched_configuration_load_config_file, +) from tests.freqai.conftest import get_patched_freqai_strategy diff --git a/tests/freqai/test_freqai_datakitchen.py b/tests/freqai/test_freqai_datakitchen.py index ba1520601..0f4bbfd08 100644 --- a/tests/freqai/test_freqai_datakitchen.py +++ b/tests/freqai/test_freqai_datakitchen.py @@ -11,8 +11,12 @@ from freqtrade.data.dataprovider import DataProvider from freqtrade.exceptions import OperationalException from freqtrade.freqai.data_kitchen import FreqaiDataKitchen from tests.conftest import get_patched_exchange -from tests.freqai.conftest import (get_patched_data_kitchen, get_patched_freqai_strategy, is_mac, - make_unfiltered_dataframe) +from tests.freqai.conftest import ( + get_patched_data_kitchen, + get_patched_freqai_strategy, + is_mac, + make_unfiltered_dataframe, +) @pytest.mark.parametrize( diff --git a/tests/freqai/test_freqai_interface.py b/tests/freqai/test_freqai_interface.py index 178984818..6c72329c1 100644 --- a/tests/freqai/test_freqai_interface.py +++ b/tests/freqai/test_freqai_interface.py @@ -14,8 +14,13 @@ from freqtrade.optimize.backtesting import Backtesting from freqtrade.persistence import Trade from freqtrade.plugins.pairlistmanager import PairListManager from tests.conftest import EXMS, create_mock_trades, get_patched_exchange, log_has_re -from tests.freqai.conftest import (get_patched_freqai_strategy, is_arm, is_mac, make_rl_config, - mock_pytorch_mlp_model_training_parameters) +from tests.freqai.conftest import ( + get_patched_freqai_strategy, + is_arm, + is_mac, + make_rl_config, + mock_pytorch_mlp_model_training_parameters, +) def can_run_model(model: str) -> None: diff --git a/tests/freqtradebot/test_freqtradebot.py b/tests/freqtradebot/test_freqtradebot.py index 14dccf643..2a664ab38 100644 --- a/tests/freqtradebot/test_freqtradebot.py +++ b/tests/freqtradebot/test_freqtradebot.py @@ -13,23 +13,55 @@ from pandas import DataFrame from sqlalchemy import select from freqtrade.constants import CANCEL_REASON, UNLIMITED_STAKE_AMOUNT -from freqtrade.enums import (CandleType, ExitCheckTuple, ExitType, RPCMessageType, RunMode, - SignalDirection, State) -from freqtrade.exceptions import (DependencyException, ExchangeError, InsufficientFundsError, - InvalidOrderException, OperationalException, PricingError, - TemporaryError) +from freqtrade.enums import ( + CandleType, + ExitCheckTuple, + ExitType, + RPCMessageType, + RunMode, + SignalDirection, + State, +) +from freqtrade.exceptions import ( + DependencyException, + ExchangeError, + InsufficientFundsError, + InvalidOrderException, + OperationalException, + PricingError, + TemporaryError, +) from freqtrade.freqtradebot import FreqtradeBot from freqtrade.persistence import Order, PairLocks, Trade from freqtrade.plugins.protections.iprotection import ProtectionReturn from freqtrade.util.datetime_helpers import dt_now, dt_utc from freqtrade.worker import Worker -from tests.conftest import (EXMS, create_mock_trades, create_mock_trades_usdt, - get_patched_freqtradebot, get_patched_worker, log_has, log_has_re, - patch_edge, patch_exchange, patch_get_signal, patch_wallet, - patch_whitelist) -from tests.conftest_trades import (MOCK_TRADE_COUNT, entry_side, exit_side, mock_order_2, - mock_order_2_sell, mock_order_3, mock_order_3_sell, mock_order_4, - mock_order_5_stoploss, mock_order_6_sell) +from tests.conftest import ( + EXMS, + create_mock_trades, + create_mock_trades_usdt, + get_patched_freqtradebot, + get_patched_worker, + log_has, + log_has_re, + patch_edge, + patch_exchange, + patch_get_signal, + patch_wallet, + patch_whitelist, +) +from tests.conftest_trades import ( + MOCK_TRADE_COUNT, + entry_side, + exit_side, + mock_order_2, + mock_order_2_sell, + mock_order_3, + mock_order_3_sell, + mock_order_4, + mock_order_5_stoploss, + mock_order_6_sell, +) from tests.conftest_trades_usdt import mock_trade_usdt_4 diff --git a/tests/freqtradebot/test_stoploss_on_exchange.py b/tests/freqtradebot/test_stoploss_on_exchange.py index 04a04ea9f..4a849b537 100644 --- a/tests/freqtradebot/test_stoploss_on_exchange.py +++ b/tests/freqtradebot/test_stoploss_on_exchange.py @@ -11,8 +11,16 @@ from freqtrade.freqtradebot import FreqtradeBot from freqtrade.persistence import Order, Trade from freqtrade.persistence.models import PairLock from freqtrade.util.datetime_helpers import dt_now -from tests.conftest import (EXMS, get_patched_freqtradebot, log_has, log_has_re, patch_edge, - patch_exchange, patch_get_signal, patch_whitelist) +from tests.conftest import ( + EXMS, + get_patched_freqtradebot, + log_has, + log_has_re, + patch_edge, + patch_exchange, + patch_get_signal, + patch_whitelist, +) from tests.conftest_trades import entry_side, exit_side from tests.freqtradebot.test_freqtradebot import patch_RPCManager diff --git a/tests/optimize/test_backtest_detail.py b/tests/optimize/test_backtest_detail.py index 21f2d069c..8b0fea0d3 100644 --- a/tests/optimize/test_backtest_detail.py +++ b/tests/optimize/test_backtest_detail.py @@ -9,8 +9,13 @@ from freqtrade.enums import ExitType, TradingMode from freqtrade.optimize.backtesting import Backtesting from freqtrade.persistence.trade_model import LocalTrade from tests.conftest import EXMS, patch_exchange -from tests.optimize import (BTContainer, BTrade, _build_backtest_dataframe, - _get_frame_time_from_offset, tests_timeframe) +from tests.optimize import ( + BTContainer, + BTrade, + _build_backtest_dataframe, + _get_frame_time_from_offset, + tests_timeframe, +) # Test 0: Sell with signal sell in candle 3 diff --git a/tests/optimize/test_backtesting.py b/tests/optimize/test_backtesting.py index 4cd56ba76..1f0cb50ff 100644 --- a/tests/optimize/test_backtesting.py +++ b/tests/optimize/test_backtesting.py @@ -26,8 +26,15 @@ from freqtrade.optimize.backtesting import Backtesting from freqtrade.persistence import LocalTrade, Trade from freqtrade.resolvers import StrategyResolver from freqtrade.util.datetime_helpers import dt_utc -from tests.conftest import (CURRENT_TEST_STRATEGY, EXMS, get_args, log_has, log_has_re, - patch_exchange, patched_configuration_load_config_file) +from tests.conftest import ( + CURRENT_TEST_STRATEGY, + EXMS, + get_args, + log_has, + log_has_re, + patch_exchange, + patched_configuration_load_config_file, +) ORDER_TYPES = [ diff --git a/tests/optimize/test_edge_cli.py b/tests/optimize/test_edge_cli.py index 3a059fce5..3558bb617 100644 --- a/tests/optimize/test_edge_cli.py +++ b/tests/optimize/test_edge_cli.py @@ -6,8 +6,14 @@ from unittest.mock import MagicMock from freqtrade.commands.optimize_commands import setup_optimize_configuration, start_edge from freqtrade.enums import RunMode from freqtrade.optimize.edge_cli import EdgeCli -from tests.conftest import (CURRENT_TEST_STRATEGY, EXMS, get_args, log_has, patch_exchange, - patched_configuration_load_config_file) +from tests.conftest import ( + CURRENT_TEST_STRATEGY, + EXMS, + get_args, + log_has, + patch_exchange, + patched_configuration_load_config_file, +) def test_setup_optimize_configuration_without_arguments(mocker, default_conf, caplog) -> None: diff --git a/tests/optimize/test_hyperopt.py b/tests/optimize/test_hyperopt.py index a68a0fc39..6553ebd13 100644 --- a/tests/optimize/test_hyperopt.py +++ b/tests/optimize/test_hyperopt.py @@ -20,8 +20,16 @@ from freqtrade.optimize.optimize_reports import generate_strategy_stats from freqtrade.optimize.space import SKDecimal from freqtrade.strategy import IntParameter from freqtrade.util import dt_utc -from tests.conftest import (CURRENT_TEST_STRATEGY, EXMS, get_args, get_markets, log_has, log_has_re, - patch_exchange, patched_configuration_load_config_file) +from tests.conftest import ( + CURRENT_TEST_STRATEGY, + EXMS, + get_args, + get_markets, + log_has, + log_has_re, + patch_exchange, + patched_configuration_load_config_file, +) def generate_result_metrics(): diff --git a/tests/optimize/test_optimize_reports.py b/tests/optimize/test_optimize_reports.py index f38fcb885..ca39c39b3 100644 --- a/tests/optimize/test_optimize_reports.py +++ b/tests/optimize/test_optimize_reports.py @@ -10,21 +10,33 @@ import pytest from freqtrade.configuration import TimeRange from freqtrade.constants import BACKTEST_BREAKDOWNS, DATETIME_PRINT_FORMAT, LAST_BT_RESULT_FN from freqtrade.data import history -from freqtrade.data.btanalysis import (get_latest_backtest_filename, load_backtest_data, - load_backtest_stats) +from freqtrade.data.btanalysis import ( + get_latest_backtest_filename, + load_backtest_data, + load_backtest_stats, +) from freqtrade.edge import PairInfo from freqtrade.enums import ExitType -from freqtrade.optimize.optimize_reports import (generate_backtest_stats, generate_daily_stats, - generate_edge_table, generate_pair_metrics, - generate_periodic_breakdown_stats, - generate_strategy_comparison, - generate_trading_stats, show_sorted_pairlist, - store_backtest_analysis_results, - store_backtest_stats, text_table_bt_results, - text_table_strategy) +from freqtrade.optimize.optimize_reports import ( + generate_backtest_stats, + generate_daily_stats, + generate_edge_table, + generate_pair_metrics, + generate_periodic_breakdown_stats, + generate_strategy_comparison, + generate_trading_stats, + show_sorted_pairlist, + store_backtest_analysis_results, + store_backtest_stats, + text_table_bt_results, + text_table_strategy, +) from freqtrade.optimize.optimize_reports.bt_output import text_table_tags -from freqtrade.optimize.optimize_reports.optimize_reports import (_get_resample_from_period, - calc_streak, generate_tag_metrics) +from freqtrade.optimize.optimize_reports.optimize_reports import ( + _get_resample_from_period, + calc_streak, + generate_tag_metrics, +) from freqtrade.resolvers.strategy_resolver import StrategyResolver from freqtrade.util import dt_ts from freqtrade.util.datetime_helpers import dt_from_ts, dt_utc diff --git a/tests/persistence/test_persistence.py b/tests/persistence/test_persistence.py index 67f0f8769..504a743b0 100644 --- a/tests/persistence/test_persistence.py +++ b/tests/persistence/test_persistence.py @@ -10,8 +10,13 @@ from freqtrade.enums import TradingMode from freqtrade.exceptions import DependencyException from freqtrade.persistence import LocalTrade, Order, Trade, init_db from freqtrade.util import dt_now -from tests.conftest import (create_mock_trades, create_mock_trades_usdt, - create_mock_trades_with_leverage, log_has, log_has_re) +from tests.conftest import ( + create_mock_trades, + create_mock_trades_usdt, + create_mock_trades_with_leverage, + log_has, + log_has_re, +) spot, margin, futures = TradingMode.SPOT, TradingMode.MARGIN, TradingMode.FUTURES diff --git a/tests/persistence/test_trade_custom_data.py b/tests/persistence/test_trade_custom_data.py index 15241aa93..b244c61e8 100644 --- a/tests/persistence/test_trade_custom_data.py +++ b/tests/persistence/test_trade_custom_data.py @@ -7,8 +7,13 @@ from freqtrade.data.history.history_utils import get_timerange from freqtrade.optimize.backtesting import Backtesting from freqtrade.persistence import Trade, disable_database_use, enable_database_use from freqtrade.persistence.custom_data import CustomDataWrapper -from tests.conftest import (EXMS, create_mock_trades_usdt, generate_test_data, - get_patched_freqtradebot, patch_exchange) +from tests.conftest import ( + EXMS, + create_mock_trades_usdt, + generate_test_data, + get_patched_freqtradebot, + patch_exchange, +) @pytest.mark.usefixtures("init_persistence") diff --git a/tests/plugins/test_pairlist.py b/tests/plugins/test_pairlist.py index 10cef1138..dba9772a7 100644 --- a/tests/plugins/test_pairlist.py +++ b/tests/plugins/test_pairlist.py @@ -19,8 +19,16 @@ from freqtrade.plugins.pairlist.pairlist_helpers import dynamic_expand_pairlist, from freqtrade.plugins.pairlistmanager import PairListManager from freqtrade.resolvers import PairListResolver from freqtrade.util.datetime_helpers import dt_now -from tests.conftest import (EXMS, create_mock_trades_usdt, generate_test_data, get_patched_exchange, - get_patched_freqtradebot, log_has, log_has_re, num_log_has) +from tests.conftest import ( + EXMS, + create_mock_trades_usdt, + generate_test_data, + get_patched_exchange, + get_patched_freqtradebot, + log_has, + log_has_re, + num_log_has, +) # Exclude RemotePairList from tests. diff --git a/tests/rpc/test_rpc.py b/tests/rpc/test_rpc.py index ffaf7a9bc..a231cb06a 100644 --- a/tests/rpc/test_rpc.py +++ b/tests/rpc/test_rpc.py @@ -13,8 +13,13 @@ from freqtrade.persistence import Order, Trade from freqtrade.persistence.key_value_store import set_startup_time from freqtrade.rpc import RPC, RPCException from freqtrade.rpc.fiat_convert import CryptoToFiatConverter -from tests.conftest import (EXMS, create_mock_trades, create_mock_trades_usdt, - get_patched_freqtradebot, patch_get_signal) +from tests.conftest import ( + EXMS, + create_mock_trades, + create_mock_trades_usdt, + get_patched_freqtradebot, + patch_get_signal, +) def test_rpc_trade_status(default_conf, ticker, fee, mocker) -> None: diff --git a/tests/rpc/test_rpc_apiserver.py b/tests/rpc/test_rpc_apiserver.py index 01807d96f..c5e7d9a89 100644 --- a/tests/rpc/test_rpc_apiserver.py +++ b/tests/rpc/test_rpc_apiserver.py @@ -30,8 +30,16 @@ from freqtrade.rpc.api_server.api_auth import create_token, get_user_from_token from freqtrade.rpc.api_server.uvicorn_threaded import UvicornServer from freqtrade.rpc.api_server.webserver_bgwork import ApiBG from freqtrade.util.datetime_helpers import format_date -from tests.conftest import (CURRENT_TEST_STRATEGY, EXMS, create_mock_trades, get_mock_coro, - get_patched_freqtradebot, log_has, log_has_re, patch_get_signal) +from tests.conftest import ( + CURRENT_TEST_STRATEGY, + EXMS, + create_mock_trades, + get_mock_coro, + get_patched_freqtradebot, + log_has, + log_has_re, + patch_get_signal, +) BASE_URI = "/api/v1" diff --git a/tests/rpc/test_rpc_telegram.py b/tests/rpc/test_rpc_telegram.py index 9a3b713e2..5d339f71c 100644 --- a/tests/rpc/test_rpc_telegram.py +++ b/tests/rpc/test_rpc_telegram.py @@ -22,8 +22,14 @@ from telegram.error import BadRequest, NetworkError, TelegramError from freqtrade import __version__ from freqtrade.constants import CANCEL_REASON from freqtrade.edge import PairInfo -from freqtrade.enums import (ExitType, MarketDirection, RPCMessageType, RunMode, SignalDirection, - State) +from freqtrade.enums import ( + ExitType, + MarketDirection, + RPCMessageType, + RunMode, + SignalDirection, + State, +) from freqtrade.exceptions import OperationalException from freqtrade.freqtradebot import FreqtradeBot from freqtrade.loggers import setup_logging @@ -33,9 +39,18 @@ from freqtrade.rpc import RPC from freqtrade.rpc.rpc import RPCException from freqtrade.rpc.telegram import Telegram, authorized_only from freqtrade.util.datetime_helpers import dt_now -from tests.conftest import (CURRENT_TEST_STRATEGY, EXMS, create_mock_trades, - create_mock_trades_usdt, get_patched_freqtradebot, log_has, log_has_re, - patch_exchange, patch_get_signal, patch_whitelist) +from tests.conftest import ( + CURRENT_TEST_STRATEGY, + EXMS, + create_mock_trades, + create_mock_trades_usdt, + get_patched_freqtradebot, + log_has, + log_has_re, + patch_exchange, + patch_get_signal, + patch_whitelist, +) @pytest.fixture(autouse=True) diff --git a/tests/strategy/strats/strategy_test_v3.py b/tests/strategy/strats/strategy_test_v3.py index 83c7353ce..cfb0def81 100644 --- a/tests/strategy/strats/strategy_test_v3.py +++ b/tests/strategy/strats/strategy_test_v3.py @@ -8,8 +8,13 @@ from pandas import DataFrame import freqtrade.vendor.qtpylib.indicators as qtpylib from freqtrade.persistence import Trade -from freqtrade.strategy import (BooleanParameter, DecimalParameter, IntParameter, IStrategy, - RealParameter) +from freqtrade.strategy import ( + BooleanParameter, + DecimalParameter, + IntParameter, + IStrategy, + RealParameter, +) class StrategyTestV3(IStrategy): diff --git a/tests/strategy/test_interface.py b/tests/strategy/test_interface.py index a53eead95..d6ac74005 100644 --- a/tests/strategy/test_interface.py +++ b/tests/strategy/test_interface.py @@ -18,12 +18,23 @@ from freqtrade.optimize.space import SKDecimal from freqtrade.persistence import PairLocks, Trade from freqtrade.resolvers import StrategyResolver from freqtrade.strategy.hyper import detect_parameters -from freqtrade.strategy.parameters import (BaseParameter, BooleanParameter, CategoricalParameter, - DecimalParameter, IntParameter, RealParameter) +from freqtrade.strategy.parameters import ( + BaseParameter, + BooleanParameter, + CategoricalParameter, + DecimalParameter, + IntParameter, + RealParameter, +) from freqtrade.strategy.strategy_wrapper import strategy_safe_wrapper from freqtrade.util import dt_now -from tests.conftest import (CURRENT_TEST_STRATEGY, TRADE_SIDES, create_mock_trades, log_has, - log_has_re) +from tests.conftest import ( + CURRENT_TEST_STRATEGY, + TRADE_SIDES, + create_mock_trades, + log_has, + log_has_re, +) from .strats.strategy_test_v3 import StrategyTestV3 diff --git a/tests/test_configuration.py b/tests/test_configuration.py index 124258c04..1a2a4a129 100644 --- a/tests/test_configuration.py +++ b/tests/test_configuration.py @@ -12,18 +12,28 @@ from freqtrade.commands import Arguments from freqtrade.configuration import Configuration, validate_config_consistency from freqtrade.configuration.config_secrets import sanitize_config from freqtrade.configuration.config_validation import validate_config_schema -from freqtrade.configuration.deprecated_settings import (check_conflicting_settings, - process_deprecated_setting, - process_removed_setting, - process_temporary_deprecated_settings) +from freqtrade.configuration.deprecated_settings import ( + check_conflicting_settings, + process_deprecated_setting, + process_removed_setting, + process_temporary_deprecated_settings, +) from freqtrade.configuration.environment_vars import _flat_vars_to_nested_dict -from freqtrade.configuration.load_config import (load_config_file, load_file, load_from_files, - log_config_error_range) +from freqtrade.configuration.load_config import ( + load_config_file, + load_file, + load_from_files, + log_config_error_range, +) from freqtrade.constants import DEFAULT_DB_DRYRUN_URL, DEFAULT_DB_PROD_URL, ENV_VAR_PREFIX from freqtrade.enums import RunMode from freqtrade.exceptions import OperationalException -from tests.conftest import (CURRENT_TEST_STRATEGY, log_has, log_has_re, - patched_configuration_load_config_file) +from tests.conftest import ( + CURRENT_TEST_STRATEGY, + log_has, + log_has_re, + patched_configuration_load_config_file, +) @pytest.fixture(scope="function") diff --git a/tests/test_directory_operations.py b/tests/test_directory_operations.py index 8bd07f18a..dc256f931 100644 --- a/tests/test_directory_operations.py +++ b/tests/test_directory_operations.py @@ -5,8 +5,12 @@ from unittest.mock import MagicMock import pytest -from freqtrade.configuration.directory_operations import (chown_user_directory, copy_sample_files, - create_datadir, create_userdata_dir) +from freqtrade.configuration.directory_operations import ( + chown_user_directory, + copy_sample_files, + create_datadir, + create_userdata_dir, +) from freqtrade.exceptions import OperationalException from tests.conftest import log_has, log_has_re diff --git a/tests/test_log_setup.py b/tests/test_log_setup.py index 4310b8f09..b2142943b 100644 --- a/tests/test_log_setup.py +++ b/tests/test_log_setup.py @@ -4,10 +4,17 @@ import sys import pytest from freqtrade.exceptions import OperationalException -from freqtrade.loggers import (FTBufferingHandler, FTStdErrStreamHandler, set_loggers, - setup_logging, setup_logging_pre) -from freqtrade.loggers.set_log_levels import (reduce_verbosity_for_bias_tester, - restore_verbosity_for_bias_tester) +from freqtrade.loggers import ( + FTBufferingHandler, + FTStdErrStreamHandler, + set_loggers, + setup_logging, + setup_logging_pre, +) +from freqtrade.loggers.set_log_levels import ( + reduce_verbosity_for_bias_tester, + restore_verbosity_for_bias_tester, +) def test_set_loggers() -> None: diff --git a/tests/test_main.py b/tests/test_main.py index 4b28c094f..44e65f66a 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -12,8 +12,12 @@ from freqtrade.exceptions import ConfigurationError, FreqtradeException, Operati from freqtrade.freqtradebot import FreqtradeBot from freqtrade.main import main from freqtrade.worker import Worker -from tests.conftest import (log_has, log_has_re, patch_exchange, - patched_configuration_load_config_file) +from tests.conftest import ( + log_has, + log_has_re, + patch_exchange, + patched_configuration_load_config_file, +) def test_parse_args_None(caplog) -> None: diff --git a/tests/test_misc.py b/tests/test_misc.py index c9a196259..b342eaa9f 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -7,10 +7,19 @@ from unittest.mock import MagicMock import pandas as pd import pytest -from freqtrade.misc import (dataframe_to_json, deep_merge_dicts, file_dump_json, file_load_json, - is_file_in_dir, json_to_dataframe, pair_to_filename, - parse_db_uri_for_logging, plural, safe_value_fallback, - safe_value_fallback2) +from freqtrade.misc import ( + dataframe_to_json, + deep_merge_dicts, + file_dump_json, + file_load_json, + is_file_in_dir, + json_to_dataframe, + pair_to_filename, + parse_db_uri_for_logging, + plural, + safe_value_fallback, + safe_value_fallback2, +) def test_file_dump_json(mocker) -> None: diff --git a/tests/test_plotting.py b/tests/test_plotting.py index 185bfeaf1..741935a8b 100644 --- a/tests/test_plotting.py +++ b/tests/test_plotting.py @@ -12,10 +12,20 @@ from freqtrade.data import history from freqtrade.data.btanalysis import load_backtest_data from freqtrade.data.metrics import create_cum_profit from freqtrade.exceptions import OperationalException -from freqtrade.plot.plotting import (add_areas, add_indicators, add_profit, create_plotconfig, - generate_candlestick_graph, generate_plot_filename, - generate_profit_graph, init_plotscript, load_and_plot_trades, - plot_profit, plot_trades, store_plot_file) +from freqtrade.plot.plotting import ( + add_areas, + add_indicators, + add_profit, + create_plotconfig, + generate_candlestick_graph, + generate_plot_filename, + generate_profit_graph, + init_plotscript, + load_and_plot_trades, + plot_profit, + plot_trades, + store_plot_file, +) from freqtrade.resolvers import StrategyResolver from tests.conftest import get_args, log_has, log_has_re, patch_exchange diff --git a/tests/test_wallets.py b/tests/test_wallets.py index 0d0ada1b7..eff6ba20d 100644 --- a/tests/test_wallets.py +++ b/tests/test_wallets.py @@ -8,8 +8,13 @@ from sqlalchemy import select from freqtrade.constants import UNLIMITED_STAKE_AMOUNT from freqtrade.exceptions import DependencyException from freqtrade.persistence import Trade -from tests.conftest import (EXMS, create_mock_trades, create_mock_trades_usdt, - get_patched_freqtradebot, patch_wallet) +from tests.conftest import ( + EXMS, + create_mock_trades, + create_mock_trades_usdt, + get_patched_freqtradebot, + patch_wallet, +) def test_sync_wallet_at_boot(mocker, default_conf): diff --git a/tests/utils/test_binance_mig.py b/tests/utils/test_binance_mig.py index b509b7320..a9ea3ddbd 100644 --- a/tests/utils/test_binance_mig.py +++ b/tests/utils/test_binance_mig.py @@ -3,8 +3,11 @@ import shutil import pytest from freqtrade.persistence import Trade -from freqtrade.util.migrations import (migrate_binance_futures_data, migrate_binance_futures_names, - migrate_data) +from freqtrade.util.migrations import ( + migrate_binance_futures_data, + migrate_binance_futures_names, + migrate_data, +) from tests.conftest import create_mock_trades_usdt, log_has diff --git a/tests/utils/test_datetime_helpers.py b/tests/utils/test_datetime_helpers.py index 20e6fc0f5..5e1ce4190 100644 --- a/tests/utils/test_datetime_helpers.py +++ b/tests/utils/test_datetime_helpers.py @@ -3,8 +3,18 @@ from datetime import datetime, timedelta, timezone import pytest import time_machine -from freqtrade.util import (dt_floor_day, dt_from_ts, dt_now, dt_ts, dt_ts_def, dt_ts_none, dt_utc, - format_date, format_ms_time, shorten_date) +from freqtrade.util import ( + dt_floor_day, + dt_from_ts, + dt_now, + dt_ts, + dt_ts_def, + dt_ts_none, + dt_utc, + format_date, + format_ms_time, + shorten_date, +) from freqtrade.util.datetime_helpers import dt_humanize_delta