| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- from datetime import UTC, datetime
- from pathlib import Path
- from zbt.commands.seed_knowledge import seed_documents
- from zbt.domains.knowledge.index import InMemoryKnowledgeIndex
- from zbt.domains.knowledge.repository import InMemoryKnowledgeRepository
- from zbt.domains.knowledge.service import KnowledgeService
- NOW = datetime(2026, 7, 29, 10, tzinfo=UTC)
- def test_seed_documents_rebuilds_index_for_published_mysql_snapshot(
- tmp_path: Path,
- ) -> None:
- source_name = "测试保险条款.md"
- (tmp_path / source_name).write_text(
- "疾病医疗责任的等待期为30天。",
- encoding="utf-8",
- )
- repository = InMemoryKnowledgeRepository()
- original_service = KnowledgeService(
- repository,
- lambda: NOW,
- InMemoryKnowledgeIndex(),
- )
- created = original_service.create_document(
- title="测试保险条款",
- document_type="INSURANCE_TERMS",
- source_name=source_name,
- product_code="MED-TEST",
- content="疾病医疗责任的等待期为30天。",
- created_by="SYSTEM_SEED",
- )
- document_id = str(created["document_id"])
- original_service.index_document(document_id)
- original_service.test_search(document_id, "等待期")
- original_service.publish_document(document_id)
- fresh_index = InMemoryKnowledgeIndex()
- restored_service = KnowledgeService(repository, lambda: NOW, fresh_index)
- seed_documents(
- restored_service,
- repository,
- tmp_path,
- (
- {
- "file_name": source_name,
- "title": "测试保险条款",
- "document_type": "INSURANCE_TERMS",
- "product_code": "MED-TEST",
- },
- ),
- )
- result = restored_service.search("等待期")
- assert result["total"] == 1
- restored_document = repository.get_document(document_id)
- assert restored_document is not None
- assert restored_document.status == "PUBLISHED"
|