-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Expand file tree
/
Copy pathconftest.py
More file actions
46 lines (32 loc) · 1.14 KB
/
conftest.py
File metadata and controls
46 lines (32 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""Shared fixtures for backend tests."""
import sys
import os
# Ensure backend directory is on the path so imports work
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
import pytest
from config import config
from vector_store import VectorStore
from search_tools import CourseSearchTool, CourseOutlineTool, ToolManager
from ai_generator import AIGenerator
from rag_system import RAGSystem
@pytest.fixture(scope="session")
def vector_store():
return VectorStore(config.CHROMA_PATH, config.EMBEDDING_MODEL, config.MAX_RESULTS)
@pytest.fixture(scope="session")
def search_tool(vector_store):
return CourseSearchTool(vector_store)
@pytest.fixture(scope="session")
def ai_generator():
return AIGenerator(config.ANTHROPIC_API_KEY, config.ANTHROPIC_MODEL)
@pytest.fixture(scope="session")
def outline_tool(vector_store):
return CourseOutlineTool(vector_store)
@pytest.fixture(scope="session")
def tool_manager(search_tool, outline_tool):
tm = ToolManager()
tm.register_tool(search_tool)
tm.register_tool(outline_tool)
return tm
@pytest.fixture(scope="session")
def rag_system():
return RAGSystem(config)