test: 补充测试覆盖率 — DB/CLI/Search/Ingest + 修复 chromadb 异常兼容
This commit is contained in:
@@ -286,3 +286,38 @@ class TestIncrementalIngest:
|
||||
count2 = ingestor.ingest_file(str(file), incremental=True, force=True)
|
||||
assert count1 > 0
|
||||
assert count2 > 0 # force 模式重新入库
|
||||
|
||||
|
||||
def test_ingest_content_default_splitter(tmp_path):
|
||||
"""未指定 splitter 时用 MarkdownSplitter."""
|
||||
from src.core.config import EmbedConfig
|
||||
from src.core.db import VectorDB
|
||||
from src.core.embedder import create_embedder
|
||||
from src.core.ingest import DocumentIngestor
|
||||
|
||||
db = VectorDB(persist_dir=str(tmp_path / "db"))
|
||||
embedder = create_embedder(EmbedConfig(mode="local"))
|
||||
ingestor = DocumentIngestor(db, embedder, "test_content")
|
||||
count = ingestor.ingest_content("# 测试\n\n一些内容。", "test.md")
|
||||
assert count >= 1
|
||||
|
||||
|
||||
def test_ingest_directory_recursive(tmp_path):
|
||||
"""ingest_directory 递归处理子目录."""
|
||||
from src.core.config import EmbedConfig, ChunkConfig
|
||||
from src.core.db import VectorDB
|
||||
from src.core.embedder import create_embedder
|
||||
from src.core.ingest import DocumentIngestor
|
||||
|
||||
(tmp_path / "sub").mkdir()
|
||||
(tmp_path / "a.md").write_text("# A\n\n内容A。", encoding="utf-8")
|
||||
(tmp_path / "sub" / "b.md").write_text("# B\n\n内容B。", encoding="utf-8")
|
||||
db = VectorDB(persist_dir=str(tmp_path / "db_r"))
|
||||
embedder = create_embedder(EmbedConfig(mode="local"))
|
||||
ingestor = DocumentIngestor(
|
||||
db, embedder, "test_recurse",
|
||||
chunk_config=ChunkConfig(max_size=1000, overlap=100),
|
||||
)
|
||||
results = ingestor.ingest_directory(str(tmp_path))
|
||||
assert len(results) >= 2
|
||||
assert all(v > 0 for v in results.values())
|
||||
|
||||
Reference in New Issue
Block a user