mirror of
https://github.com/freqtrade/freqtrade.git
synced 2026-04-28 13:00:13 +00:00
Add rudimentary test for test_trade_converter
This commit is contained in:
46
tests/data/test_trade_converter_kraken.py
Normal file
46
tests/data/test_trade_converter_kraken.py
Normal file
@@ -0,0 +1,46 @@
|
||||
from datetime import datetime, timezone
|
||||
from pathlib import Path
|
||||
from shutil import copytree
|
||||
from unittest.mock import PropertyMock
|
||||
|
||||
from freqtrade.data.converter.trade_converter_kraken import import_kraken_trades_from_csv
|
||||
from freqtrade.data.history.idatahandler import get_datahandler
|
||||
from tests.conftest import EXMS, log_has, log_has_re, patch_exchange
|
||||
|
||||
|
||||
def test_import_kraken_trades_from_csv(testdatadir, tmpdir, caplog, default_conf_usdt, mocker):
|
||||
default_conf_usdt['exchange']['name'] = 'kraken'
|
||||
|
||||
patch_exchange(mocker, id='kraken')
|
||||
mocker.patch(f'{EXMS}.markets', PropertyMock(return_value={
|
||||
'BCH/EUR': {'symbol': 'BCH/EUR', 'id': 'BCHEUR', 'altname': 'BCHEUR'},
|
||||
}))
|
||||
tmpdir1 = Path(tmpdir)
|
||||
dstfile = tmpdir1 / 'BCH_EUR-trades.feather'
|
||||
assert not dstfile.is_file()
|
||||
default_conf_usdt['datadir'] = tmpdir1
|
||||
# There's 2 files in this tree, containing a total of 2 days.
|
||||
# tests/testdata/kraken/
|
||||
# └── trades_csv
|
||||
# ├── BCHEUR.csv <-- 2023-01-01
|
||||
# └── incremental_q2
|
||||
# └── BCHEUR.csv <-- 2023-01-02
|
||||
|
||||
copytree(testdatadir / 'kraken/trades_csv', tmpdir1 / 'trades_csv')
|
||||
|
||||
import_kraken_trades_from_csv(default_conf_usdt, 'feather')
|
||||
assert log_has("Found csv files for BCHEUR.", caplog)
|
||||
assert log_has_re(r"BCH/EUR: 340 trades.* 2023-01-01.* 2023-01-02.*", caplog)
|
||||
|
||||
assert dstfile.is_file()
|
||||
|
||||
dh = get_datahandler(tmpdir1, 'feather')
|
||||
trades = dh.trades_load('BCH_EUR')
|
||||
assert len(trades) == 340
|
||||
|
||||
assert trades['date'].min().to_pydatetime() == datetime(2023, 1, 1, 0, 3, 56,
|
||||
tzinfo=timezone.utc)
|
||||
assert trades['date'].max().to_pydatetime() == datetime(2023, 1, 2, 23, 17, 3,
|
||||
tzinfo=timezone.utc)
|
||||
# ID is not filled
|
||||
assert len(trades.loc[trades['id'] != '']) == 0
|
||||
Reference in New Issue
Block a user