freqtrade_origin/tests/util/test_binance_mig.py

66 lines
2.2 KiB
Python
Raw Normal View History

2023-01-14 19:34:04 +00:00
import shutil
2023-01-14 19:54:42 +00:00
import pytest
from freqtrade.persistence import Trade
from freqtrade.util.migrations import migrate_binance_futures_data, migrate_data
from freqtrade.util.migrations.binance_mig import migrate_binance_futures_names
2023-01-14 19:54:42 +00:00
from tests.conftest import create_mock_trades_usdt, log_has
2023-01-14 19:34:04 +00:00
2023-11-05 15:15:36 +00:00
def test_binance_mig_data_conversion(default_conf_usdt, tmp_path, testdatadir):
2023-01-14 19:34:04 +00:00
# call doing nothing (spot mode)
migrate_binance_futures_data(default_conf_usdt)
2024-05-12 13:41:07 +00:00
default_conf_usdt["trading_mode"] = "futures"
pair_old = "XRP_USDT"
pair_unified = "XRP_USDT_USDT"
futures_src = testdatadir / "futures"
futures_dst = tmp_path / "futures"
2023-01-14 19:34:04 +00:00
futures_dst.mkdir()
files = [
2024-05-12 13:41:07 +00:00
"-1h-mark.feather",
"-1h-futures.feather",
"-8h-funding_rate.feather",
"-8h-mark.feather",
2023-01-14 19:34:04 +00:00
]
# Copy files to tmpdir and rename to old naming
for file in files:
2024-05-12 13:41:07 +00:00
fn_after = futures_dst / f"{pair_old}{file}"
shutil.copy(futures_src / f"{pair_unified}{file}", fn_after)
2023-01-14 19:34:04 +00:00
2024-05-12 13:41:07 +00:00
default_conf_usdt["datadir"] = tmp_path
2023-01-14 19:34:04 +00:00
# Migrate files to unified namings
migrate_binance_futures_data(default_conf_usdt)
for file in files:
2024-05-12 13:41:07 +00:00
fn_after = futures_dst / f"{pair_unified}{file}"
2023-01-14 19:34:04 +00:00
assert fn_after.exists()
2023-01-14 19:54:42 +00:00
@pytest.mark.usefixtures("init_persistence")
def test_binance_mig_db_conversion(default_conf_usdt, fee, caplog):
# Does nothing in spot mode
migrate_binance_futures_names(default_conf_usdt)
create_mock_trades_usdt(fee, None)
for t in Trade.get_trades():
2024-05-12 13:41:07 +00:00
t.trading_mode = "FUTURES"
t.exchange = "binance"
2023-01-14 19:54:42 +00:00
Trade.commit()
2024-05-12 13:41:07 +00:00
default_conf_usdt["trading_mode"] = "futures"
2023-01-14 19:54:42 +00:00
migrate_binance_futures_names(default_conf_usdt)
2024-05-12 13:41:07 +00:00
assert log_has("Migrating binance futures pairs in database.", caplog)
2024-01-04 16:08:57 +00:00
def test_migration_wrapper(default_conf_usdt, mocker):
2024-05-12 13:41:07 +00:00
default_conf_usdt["trading_mode"] = "futures"
binmock = mocker.patch("freqtrade.util.migrations.migrate_binance_futures_data")
funding_mock = mocker.patch("freqtrade.util.migrations.migrate_funding_fee_timeframe")
2024-01-04 16:08:57 +00:00
migrate_data(default_conf_usdt)
assert binmock.call_count == 1
assert funding_mock.call_count == 1