diff options
Diffstat (limited to 'services/api/tests/test_orders_router.py')
| -rw-r--r-- | services/api/tests/test_orders_router.py | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/services/api/tests/test_orders_router.py b/services/api/tests/test_orders_router.py new file mode 100644 index 0000000..899fb27 --- /dev/null +++ b/services/api/tests/test_orders_router.py @@ -0,0 +1,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() == [] |
