summaryrefslogtreecommitdiff
path: root/services/api/tests/test_orders_router.py
blob: 065861917bc9dc38a27c224bc644a55e469359a5 (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
"""Tests for orders API router."""

import pytest
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() == []