|
import os |
|
from langchain.schema import Document |
|
from backend.app.vectorstore import get_vector_db |
|
|
|
def test_directory_creation(): |
|
get_vector_db() |
|
assert os.path.exists("static/data") |
|
assert os.path.exists("static/data/langchain_rag_tutorial.html") |
|
|
|
|
|
def test_html_content(): |
|
with open("static/data/langchain_rag_tutorial.html", "r", encoding="utf-8") as f: |
|
content = f.read() |
|
|
|
|
|
assert "RAG" in content |
|
assert "LangChain" in content |
|
|
|
def test_vector_store_similarity_search(): |
|
"""Test that the vector store can perform similarity search""" |
|
|
|
query = "What is RAG?" |
|
|
|
|
|
vector_db = get_vector_db() |
|
results = vector_db.similarity_search(query, k=2) |
|
|
|
|
|
assert len(results) == 2 |
|
assert isinstance(results[0], Document) |
|
|
|
|
|
combined_content = " ".join([doc.page_content for doc in results]).lower() |
|
assert "rag" in combined_content |
|
assert "retrieval" in combined_content |
|
|
|
def test_vector_db_singleton(): |
|
"""Test that get_vector_db returns the same instance each time""" |
|
|
|
instance1 = get_vector_db() |
|
instance2 = get_vector_db() |
|
|
|
|
|
assert instance1 is instance2 |