summaryrefslogtreecommitdiff
path: root/services/api/tests/test_orders_router.py
blob: 899fb27838693a3e0ef46703efc63f4e23bf7934 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
"""Tests for orders API router."""
import pytest
from decimal import Decimal
from datetime import datetime, timezone
from unittest.mock import AsyncMock, MagicMock
from fastapi.testclient import TestClient
from fastapi import FastAPI

from trading_api.routers.orders import router


@pytest.fixture
def app():
    app = FastAPI()
    app.include_router(router, prefix="/orders")
    return app


@pytest.fixture
def mock_db():
    db = AsyncMock()
    mock_session = AsyncMock()
    mock_session.__aenter__ = AsyncMock(return_value=mock_session)
    mock_session.__aexit__ = AsyncMock(return_value=False)
    db.get_session = MagicMock(return_value=mock_session)
    return db, mock_session


def test_get_orders_empty(app, mock_db):
    db, session = mock_db
    app.state.db = db

    mock_result = MagicMock()
    mock_result.scalars.return_value.all.return_value = []
    session.execute = AsyncMock(return_value=mock_result)

    client = TestClient(app)
    response = client.get("/orders/")
    assert response.status_code == 200
    assert response.json() == []


def test_get_signals_empty(app, mock_db):
    db, session = mock_db
    app.state.db = db

    mock_result = MagicMock()
    mock_result.scalars.return_value.all.return_value = []
    session.execute = AsyncMock(return_value=mock_result)

    client = TestClient(app)
    response = client.get("/orders/signals")
    assert response.status_code == 200
    assert response.json() == []