Initial curated RAGcore source from c16667f0c9397e2bfc8dd0255b114fba23c8d05e

This commit is contained in:
Public Source Publisher committed 2026-10-01 01:34:21 +02:00
commit 7ca726caf2
659 files changed
+98171

No files matched your search

+172
View File
@@ -0,0 +1,172 @@
from __future__ import annotations
from datetime import UTC, datetime
from uuid import uuid4
import pytest
from ragcore.application.citations import CitationService
from ragcore.application.retrieval.authorization import AuthorizedRetrievalScope
from ragcore.domain.authorization import Principal, PrincipalType, ResourceNotFound
from ragcore.domain.citations import Citation
from ragcore.domain.control import Role
def citation(*, workspace_id, space_id, version_id=None) -> Citation:
return Citation.create(
workspace_id=workspace_id,
space_id=space_id,
document_id=uuid4(),
document_version_id=version_id or uuid4(),
chunk_id=uuid4(),
parent_chunk_id=None,
location={"page": 3, "line_start": 10, "line_end": 14},
excerpt="A stable cited excerpt.",
source_uri="https://example.test/runbook.md",
acquired_at=datetime(2026, 8, 1, 12, 0, tzinfo=UTC),
retrieval_run_id=uuid4(),
index_alias="rag_dense_hybrid_active",
profile_version="hybrid-v1",
)
class InMemoryCitationRepository:
def __init__(self) -> None:
self.rows: dict[object, Citation] = {}
async def create(self, value: Citation) -> Citation:
self.rows.setdefault(value.id, value)
return self.rows[value.id]
async def get_authorized(
self,
citation_id,
*,
workspace_id,
effective_space_ids,
) -> Citation | None:
value = self.rows.get(citation_id)
if (
value is None
or value.workspace_id != workspace_id
or value.space_id not in effective_space_ids
):
return None
return value
def principal(workspace_id) -> Principal:
return Principal(
id=uuid4(),
workspace_id=workspace_id,
principal_type=PrincipalType.HUMAN,
roles=frozenset({Role.VIEWER}),
)
@pytest.mark.asyncio
async def test_citation_survives_document_supersession_and_creation_is_idempotent() -> None:
workspace_id = uuid4()
space_id = uuid4()
scope = AuthorizedRetrievalScope(workspace_id, frozenset({space_id}))
repository = InMemoryCitationRepository()
service = CitationService(repository)
first = citation(workspace_id=workspace_id, space_id=space_id)
stored_first = await service.create(principal(workspace_id), scope, first)
stored_again = await service.create(principal(workspace_id), scope, first)
superseding = citation(
workspace_id=workspace_id,
space_id=space_id,
version_id=uuid4(),
)
await service.create(principal(workspace_id), scope, superseding)
resolved = await service.resolve(principal(workspace_id), scope, first.id)
assert stored_first == stored_again == first
assert resolved == first
assert len(repository.rows) == 2
@pytest.mark.asyncio
async def test_guessed_or_forbidden_citation_ids_are_hidden() -> None:
workspace_id = uuid4()
allowed_space = uuid4()
forbidden_space = uuid4()
scope = AuthorizedRetrievalScope(workspace_id, frozenset({allowed_space}))
repository = InMemoryCitationRepository()
service = CitationService(repository)
allowed_principal = principal(workspace_id)
forbidden = citation(workspace_id=workspace_id, space_id=forbidden_space)
repository.rows[forbidden.id] = forbidden
with pytest.raises(ResourceNotFound):
await service.resolve(allowed_principal, scope, forbidden.id)
with pytest.raises(ResourceNotFound):
await service.resolve(allowed_principal, scope, uuid4())
with pytest.raises(ResourceNotFound):
await service.create(allowed_principal, scope, forbidden)
def test_excerpt_checksum_and_location_are_stable_and_tampering_fails() -> None:
workspace_id = uuid4()
space_id = uuid4()
inputs = {
"workspace_id": workspace_id,
"space_id": space_id,
"document_id": uuid4(),
"document_version_id": uuid4(),
"chunk_id": uuid4(),
"parent_chunk_id": None,
"location": {"line_end": 14, "line_start": 10, "page": 3},
"excerpt": "A stable cited excerpt.",
"source_uri": "https://example.test/runbook.md",
"acquired_at": datetime(2026, 8, 1, 12, 0, tzinfo=UTC),
"retrieval_run_id": uuid4(),
"index_alias": "rag_dense_hybrid_active",
"profile_version": "hybrid-v1",
}
first = Citation.create(**inputs)
second = Citation.create(**inputs)
assert first.id == second.id
assert first.excerpt_checksum == second.excerpt_checksum
assert list(first.location) == ["line_end", "line_start", "page"]
with pytest.raises(ValueError, match="checksum"):
Citation(
**{
**inputs,
"id": first.id,
"excerpt_checksum": "0" * 64,
}
)
def test_location_and_identity_cannot_be_forged_after_creation() -> None:
workspace_id = uuid4()
space_id = uuid4()
value = citation(workspace_id=workspace_id, space_id=space_id)
with pytest.raises(TypeError):
value.location["page"] = 99 # type: ignore[index]
with pytest.raises(ValueError, match="id does not match"):
Citation(
**{
"id": uuid4(),
"workspace_id": value.workspace_id,
"space_id": value.space_id,
"document_id": value.document_id,
"document_version_id": value.document_version_id,
"chunk_id": value.chunk_id,
"parent_chunk_id": value.parent_chunk_id,
"location": dict(value.location),
"excerpt": value.excerpt,
"excerpt_checksum": value.excerpt_checksum,
"source_uri": value.source_uri,
"acquired_at": value.acquired_at,
"retrieval_run_id": value.retrieval_run_id,
"index_alias": value.index_alias,
"profile_version": value.profile_version,
}
)