conftest.py 926 B

123456789101112131415161718192021222324252627282930313233
  1. import pytest
  2. import sys
  3. import os
  4. from unittest.mock import MagicMock
  5. from fastapi.testclient import TestClient
  6. # Add the parent directory to sys.path so we can import internal modules
  7. sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
  8. # Mock the database and session modules BEFORE importing the app
  9. mock_db = MagicMock()
  10. mock_session = MagicMock()
  11. sys.modules["db"] = mock_db
  12. sys.modules["backend.db"] = mock_db
  13. sys.modules["session_utils"] = mock_session
  14. sys.modules["backend.session_utils"] = mock_session
  15. # Configuration to bypass real Redis
  16. mock_session.create_session.return_value = "mock-session-id"
  17. mock_session.validate_session.return_value = True
  18. from main import app
  19. @pytest.fixture
  20. def client():
  21. """Test client for FastAPI app"""
  22. with TestClient(app) as c:
  23. yield c
  24. @pytest.fixture
  25. def db_mock():
  26. """Fixture to access the mocked db module"""
  27. return mock_db