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