| 123456789101112131415161718192021222324252627282930313233 |
- import pytest
- import sys
- import os
- from unittest.mock import MagicMock
- from fastapi.testclient import TestClient
- # Add the parent directory to sys.path so we can import internal modules
- sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
- # Mock the database and session modules BEFORE importing the app
- mock_db = MagicMock()
- mock_session = MagicMock()
- sys.modules["db"] = mock_db
- sys.modules["backend.db"] = mock_db
- sys.modules["session_utils"] = mock_session
- sys.modules["backend.session_utils"] = mock_session
- # Configuration to bypass real Redis
- mock_session.create_session.return_value = "mock-session-id"
- mock_session.validate_session.return_value = True
- from main import app
- @pytest.fixture
- def client():
- """Test client for FastAPI app"""
- with TestClient(app) as c:
- yield c
- @pytest.fixture
- def db_mock():
- """Fixture to access the mocked db module"""
- return mock_db
|