| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- from __future__ import annotations
- def test_projection_worker_marks_ready_only_after_status_verification():
- from app.core.knowledge.lightrag.projection import ProjectionJob, ProjectionWorker
- class Client:
- def insert(self, **_kwargs):
- return type("Receipt", (), {"track_id": "track-1"})()
- def track_status(self, _track_id):
- return "processed"
- class Repository:
- def __init__(self):
- self.states = []
- def mark(self, projection_id, status, error=None):
- self.states.append((projection_id, status, error))
- repository = Repository()
- worker = ProjectionWorker(client=Client(), repository=repository)
- result = worker.project(
- ProjectionJob(
- projection_id="projection-1",
- external_document_id="DataFlow:source-1:2",
- content="canonical content",
- metadata={"point_keys": ["DataFlow/source-1/purpose"]},
- )
- )
- assert result == "ready"
- assert repository.states == [
- ("projection-1", "processing", None),
- ("projection-1", "ready", None),
- ]
- def test_unverified_delete_is_never_reported_as_deleted():
- from app.core.knowledge.lightrag.projection import ProjectionJob, ProjectionWorker
- class Client:
- def delete(self, _external_document_id):
- return type("Receipt", (), {"verified": False})()
- class Repository:
- def __init__(self):
- self.states = []
- def mark(self, projection_id, status, error=None):
- self.states.append((projection_id, status, error))
- repository = Repository()
- worker = ProjectionWorker(client=Client(), repository=repository)
- result = worker.delete(
- ProjectionJob(
- projection_id="projection-1",
- external_document_id="DataFlow:source-1:2",
- content="",
- metadata={},
- )
- )
- assert result == "unverified"
- assert repository.states[-1][1] == "unverified"
|