ForcePilot/backend/test/unit/knowledge/test_kb_utils.py
Wenjie Zhang afdb5fbb02 refactor(knowledge): 降低知识库路由复杂度
拆分示例问题生成逻辑并收敛 URL 入库与上传限制,修复 uid、MIME 与结果统计等路由问题。
2026-05-28 15:10:24 +08:00

41 lines
1.3 KiB
Python

import pytest
from yuxi.knowledge.utils.kb_utils import prepare_item_metadata
async def test_prepare_item_metadata_preserves_uploaded_file_size():
item = "minio://knowledgebases/db/upload/demo.txt"
params = {
"content_hashes": {item: "hash"},
"file_sizes": {item: 1234},
}
metadata = await prepare_item_metadata(item, "file", "db", params=params)
assert metadata["size"] == 1234
assert "file_sizes" not in (metadata.get("processing_params") or {})
async def test_prepare_item_metadata_preserves_preprocessed_file_size():
item = "minio://knowledgebases/db/upload/page.html"
params = {
"_preprocessed_map": {
item: {
"path": item,
"content_hash": "hash",
"filename": "https://example.com",
"file_size": 5678,
}
}
}
metadata = await prepare_item_metadata(item, "file", "db", params=params)
assert metadata["size"] == 5678
assert "_preprocessed_map" not in (metadata.get("processing_params") or {})
async def test_prepare_item_metadata_rejects_direct_url_content_type():
with pytest.raises(ValueError, match="Unsupported content_type"):
await prepare_item_metadata("https://example.com", "url", "db")