test_lightrag_retriever.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. from __future__ import annotations
  2. def test_lightrag_context_without_active_canonical_mapping_is_discarded():
  3. from app.core.knowledge.access import KnowledgeAccessContext
  4. from app.core.knowledge.retrieval.lightrag import LightRAGRetriever
  5. class Client:
  6. def query_context(self, *_args, **_kwargs):
  7. return "[DATAOPS_SOURCE DataFlow:removed-object:1] old context"
  8. context = KnowledgeAccessContext(
  9. subject_id="user-1",
  10. roles=frozenset({"viewer"}),
  11. permissions=frozenset({"governance:read"}),
  12. business_domain_uids=frozenset({"domain-a"}),
  13. correlation_id="correlation-1",
  14. )
  15. retriever = LightRAGRetriever(Client(), canonical_loader=lambda *_args: ())
  16. assert retriever.retrieve("query", context, 10) == ()
  17. def test_lightrag_context_is_always_reauthorized_by_canonical_loader():
  18. from app.core.knowledge.access import KnowledgeAccessContext
  19. from app.core.knowledge.retrieval.lightrag import LightRAGRetriever
  20. class Client:
  21. def query_context(self, *_args, **_kwargs):
  22. return "[DATAOPS_SOURCE DataFlow:object-1:2] active context"
  23. captured = []
  24. def loader(external_ids, context, limit):
  25. captured.append((external_ids, context.subject_id, limit))
  26. return ()
  27. context = KnowledgeAccessContext(
  28. subject_id="user-1",
  29. roles=frozenset({"viewer"}),
  30. permissions=frozenset({"governance:read"}),
  31. business_domain_uids=frozenset({"domain-a"}),
  32. correlation_id="correlation-1",
  33. )
  34. LightRAGRetriever(Client(), canonical_loader=loader).retrieve("query", context, 10)
  35. assert captured == [(("DataFlow:object-1:2",), "user-1", 10)]