import asyncio import pytest from aiomql.lib.result import Result from aiomql.core.models import OrderSendResult class TestResult: @pytest.fixture(scope="class") def parameters(self): return {"name": "test_trades", "ema": 20, "rsi": 14} @pytest.fixture(scope="function") async def order_results(self, mt, sell_order, buy_order, parameters): res1 = await mt.order_send(sell_order) res2 = await mt.order_send(buy_order) res1 = Result(result=OrderSendResult(**res1._asdict()), parameters=parameters) res2 = Result(result=OrderSendResult(**res2._asdict()), parameters=parameters) return res1, res2 async def test_get_data(self, order_results): res1, res2 = order_results data1 = res1.get_data() data2 = res2.get_data() assert data1["actual_profit"] == data2["actual_profit"] == 0 assert data1["closed"] == data2["closed"] == False assert data1["win"] == data2["win"] == False async def test_csv(self, order_results): res1, res2 = order_results await asyncio.gather(res1.save(), res2.save()) assert res1.config.records_dir.exists() record = res1.config.records_dir / f"{res1.name}.csv" assert record.exists() async def test_json(self, order_results): res1, res2 = order_results await asyncio.gather(res1.save(trade_record_mode="json"), res2.save(trade_record_mode="json")) assert res1.config.records_dir.exists() record = res1.config.records_dir / f"{res1.name}.json" assert record.exists()