| import pytest |
| from fastapi.testclient import TestClient |
| from sqlalchemy import create_engine |
| from sqlalchemy.orm import sessionmaker |
| from unittest.mock import MagicMock |
|
|
| from app.main import app |
| from app.core.database import get_db, Base |
| from app.core.security import get_current_user |
| from app.models import models |
|
|
| |
| @pytest.fixture(scope="session") |
| def db_session(): |
| mock_session = MagicMock() |
| return mock_session |
|
|
| |
| @pytest.fixture(autouse=True) |
| def override_db(db_session): |
| def _get_db_override(): |
| yield db_session |
| app.dependency_overrides[get_db] = _get_db_override |
| yield |
| app.dependency_overrides.pop(get_db, None) |
|
|
| |
| @pytest.fixture |
| def client(): |
| with TestClient(app) as test_client: |
| yield test_client |
|
|
| |
| @pytest.fixture |
| def mock_admin_user(): |
| user = models.User( |
| id=1, |
| email="admin@netraid.ai", |
| hashed_password="hashed_password", |
| is_active=True, |
| role_id=1 |
| ) |
| role = models.Role(id=1, name="Super Admin") |
| user.role = role |
| return user |
|
|
| @pytest.fixture |
| def authenticated_client(mock_admin_user): |
| def _get_current_user_override(): |
| return mock_admin_user |
| app.dependency_overrides[get_current_user] = _get_current_user_override |
| with TestClient(app) as test_client: |
| yield test_client |
| app.dependency_overrides.pop(get_current_user, None) |
|
|