| """ |
| Pytest configuration file |
| Sets up test environment and fixtures |
| """ |
|
|
| import os |
| import sys |
| from unittest.mock import Mock, patch |
|
|
| import pytest |
|
|
| |
| sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..")) |
|
|
| |
| os.environ.setdefault("OLLAMA_BASE_URL", "http://localhost:11434") |
|
|
|
|
| @pytest.fixture |
| def mock_chromadb(): |
| """Mock ChromaDB client""" |
| with patch("chromadb.PersistentClient") as mock_client: |
| mock_collection = Mock() |
| mock_client.return_value.get_collection.return_value = mock_collection |
| yield mock_client |
|
|
|
|
| @pytest.fixture |
| def mock_sqlite(): |
| """Mock SQLite connections for memory""" |
| with patch("sqlite3.connect") as mock_connect: |
| mock_conn = Mock() |
| mock_connect.return_value = mock_conn |
| yield mock_conn |
|
|
|
|
| @pytest.fixture |
| def sample_documents(): |
| """Provide sample documents for testing""" |
| doc1 = Mock() |
| doc1.page_content = ( |
| "Question: How do I create an account?\nAnswer: Visit our website." |
| ) |
| doc1.metadata = { |
| "id": "KB001", |
| "question": "How do I create an account?", |
| "content": "Visit our website.", |
| "section": "Account Management", |
| } |
|
|
| doc2 = Mock() |
| doc2.page_content = "Question: What are the fees?\nAnswer: 1% per transaction." |
| doc2.metadata = { |
| "id": "KB002", |
| "question": "What are the fees?", |
| "content": "1% per transaction.", |
| "section": "Fees", |
| } |
|
|
| return [doc1, doc2] |
|
|
|
|
|
|