55109e82d3
Co-authored-by: Cursor <cursoragent@cursor.com>
30 lines
915 B
Python
30 lines
915 B
Python
from __future__ import annotations
|
|
|
|
import time
|
|
|
|
from app.models.db import Database, set_db
|
|
from app.strategy.engine import StrategyEngine
|
|
|
|
|
|
def test_enter_rest_after_close_sets_resting(tmp_path) -> None:
|
|
db = Database(tmp_path / "rest.db")
|
|
set_db(db)
|
|
db.set_setting("rest_seconds", "120")
|
|
now = int(time.time() * 1000)
|
|
db.execute(
|
|
"""INSERT INTO groups(
|
|
group_id, status, open_at_ms, close_at_ms, realized_pnl
|
|
) VALUES (?,?,?,?,?)""",
|
|
("G-20260729-01", "closed", now - 1000, now, 1.0),
|
|
)
|
|
eng = StrategyEngine()
|
|
before = int(time.time() * 1000)
|
|
eng.enter_rest_after_close()
|
|
row = db.fetchone("SELECT * FROM strategy_state WHERE id=1")
|
|
assert row is not None
|
|
assert row["phase"] == "resting"
|
|
assert int(row["rounds_done"] or 0) == 1
|
|
until = int(row["rest_until_ms"] or 0)
|
|
assert until >= before + 100_000
|
|
db.close()
|