38 lines
912 B
Python
38 lines
912 B
Python
import json
|
|
import pytest
|
|
|
|
from fastapi.testclient import TestClient
|
|
|
|
from elac_plan.api import app
|
|
|
|
|
|
client = TestClient(app)
|
|
|
|
|
|
def test_create_problem_smoke():
|
|
payload = {
|
|
"id": "probe-001",
|
|
"asset": "AAPL",
|
|
"venue": "XNAS",
|
|
"objective": "minimize_spread",
|
|
"constraints": {"max_slippage": 0.5},
|
|
"price_target": 150.0,
|
|
"tolerance": 0.2,
|
|
}
|
|
resp = client.post("/problems", json=payload)
|
|
assert resp.status_code == 200
|
|
data = resp.json()
|
|
assert data["problem_id"] == payload["id"]
|
|
assert "delta" in data
|
|
# validate delta payload json can be parsed back
|
|
delta = json.loads(data["delta"])
|
|
assert delta["action"] == "place_order"
|
|
|
|
|
|
def test_status_endpoint():
|
|
resp = client.get("/status")
|
|
assert resp.status_code == 200
|
|
body = resp.json()
|
|
assert "problems_count" in body
|
|
assert "deltas_count" in body
|