netra / backend /app /tests /conftest.py
093xpku
Clean project layout deployment
9bc686b
Raw
History Blame Contribute Delete
1.54 kB
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
# Create a mock database session
@pytest.fixture(scope="session")
def db_session():
mock_session = MagicMock()
return mock_session
# Override the database dependency in FastAPI
@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)
# Client fixture for requests
@pytest.fixture
def client():
with TestClient(app) as test_client:
yield test_client
# Mock Current User to bypass JWT auth in CRUD endpoint tests
@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)