Files
aiomql/tests/live/unit/test_get_data.py
T

50 lines
1.8 KiB
Python
Raw Normal View History

2024-10-28 06:36:10 +01:00
from pathlib import Path
from datetime import datetime, UTC
import pytest
2024-11-04 00:32:51 +01:00
from aiomql.core.backtesting.get_data import GetData
2024-10-28 06:36:10 +01:00
from aiomql.core.constants import TimeFrame
class TestGetData:
@classmethod
def setup_class(cls):
cls.start = datetime(2024, 2, 1, tzinfo=UTC)
cls.end = datetime(2024, 2, 2, tzinfo=UTC)
2024-11-04 00:32:51 +01:00
cls.symbols = ["BTCUSD", "ETHUSD"]
2024-10-28 06:36:10 +01:00
cls.timeframes = [TimeFrame.H1, TimeFrame.H2]
2024-11-16 09:26:10 +01:00
cls.g_data = GetData(
start=cls.start, end=cls.end, symbols=cls.symbols, timeframes=cls.timeframes, name="test_data"
)
2024-11-04 00:32:51 +01:00
@pytest.fixture(scope="class", autouse=True)
2024-10-28 06:36:10 +01:00
async def get_data(self):
await self.g_data.get_data()
self.g_data.save_data()
def test_init(self):
assert self.g_data.start == self.start
assert self.g_data.end == self.end
assert self.g_data.symbols == set(self.symbols)
assert self.g_data.timeframes == set(self.timeframes)
2024-11-04 00:32:51 +01:00
assert self.g_data.name == "test_data"
2024-10-28 06:36:10 +01:00
assert self.g_data.range == range(int((self.end - self.start).total_seconds()))
2024-11-11 05:56:08 +01:00
assert self.g_data.span == range(int(self.start.timestamp()), int(self.end.timestamp()))
2024-10-28 06:36:10 +01:00
async def test_get_data(self):
assert self.g_data.data.fully_loaded is True
assert len(self.g_data.data.ticks.keys()) == 2
assert len(self.g_data.data.symbols.keys()) == 2
async def test_save_data(self):
2024-11-04 00:32:51 +01:00
file = Path(self.g_data.config.backtest_dir / "test_data.pkl")
2024-10-28 06:36:10 +01:00
assert file.exists()
async def test_load_data(self):
2024-11-04 00:32:51 +01:00
data = GetData.load_data(name="tests/live/backtesting/test_data.pkl")
assert data.name == "test_data"
2024-10-28 06:36:10 +01:00
assert data.fully_loaded is True
assert len(data.ticks.keys()) == 2
assert len(data.symbols.keys()) == 2