pdf-rag-chatbot / tests /test_rag.py
joonion's picture
Publish PDF RAG chatbot to Spaces
e5aad98 verified
Raw
History Blame Contribute Delete
1.09 kB
import os
import sys
import unittest
from pathlib import Path
BACKEND_DIR = Path(__file__).resolve().parents[1] / "backend"
sys.path.insert(0, str(BACKEND_DIR))
from rag import get_openai_client, split_text
class SplitTextTest(unittest.TestCase):
def test_empty_text_returns_no_chunks(self):
self.assertEqual(split_text(""), [])
def test_short_text_returns_one_chunk(self):
self.assertEqual(split_text("hello world", chunk_size=100), ["hello world"])
def test_long_text_is_split_with_overlap(self):
chunks = split_text("abcdefghij", chunk_size=4, overlap=1)
self.assertEqual(chunks, ["abcd", "defg", "ghij"])
class OpenAIConfigTest(unittest.TestCase):
def test_missing_api_key_has_clear_error(self):
old_key = os.environ.pop("OPENAI_API_KEY", None)
try:
with self.assertRaisesRegex(RuntimeError, "OPENAI_API_KEY"):
get_openai_client()
finally:
if old_key is not None:
os.environ["OPENAI_API_KEY"] = old_key
if __name__ == "__main__":
unittest.main()