zaza-semantic-engine / tests /test_database.py
ffffre's picture
Upload folder using huggingface_hub
331835b verified
Raw
History Blame Contribute Delete
2.08 kB
"""Tests for database module."""
import sys
import os
import tempfile
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', 'src'))
from zaza.database import Database
def test_db_create_and_add():
with tempfile.NamedTemporaryFile(suffix='.db', delete=False) as f:
db_path = f.name
try:
db = Database(db_path)
doc_id = db.add_document(
filepath="/tmp/test.txt",
filename="test.txt",
filetype=".txt",
file_size=1234
)
assert doc_id is not None
db.add_analysis(doc_id, {
"word_count": 100,
"char_count": 500,
"sentence_count": 5,
"unique_words": 50,
"lexical_density": 0.5,
"avg_word_length": 4.5,
"top_words": [{"word": "test", "count": 10}],
})
summary = db.get_summary()
assert summary["total_documents"] == 1
assert summary["total_words"] == 100
docs = db.get_documents()
assert len(docs) == 1
assert docs[0]["filename"] == "test.txt"
results = db.search("test")
assert len(results) == 1
finally:
os.unlink(db_path)
def test_db_duplicate_document():
with tempfile.NamedTemporaryFile(suffix='.db', delete=False) as f:
db_path = f.name
try:
db = Database(db_path)
id1 = db.add_document("/tmp/a.txt", "a.txt", ".txt", 100)
id2 = db.add_document("/tmp/a.txt", "a.txt", ".txt", 100)
assert id1 == id2
docs = db.get_documents()
assert len(docs) == 1
finally:
os.unlink(db_path)
def test_db_empty_summary():
with tempfile.NamedTemporaryFile(suffix='.db', delete=False) as f:
db_path = f.name
try:
db = Database(db_path)
summary = db.get_summary()
assert summary["total_documents"] == 0
assert summary["total_words"] == 0
finally:
os.unlink(db_path)