feat(evidence): build semantic fragments from typed units
This commit is contained in:
@@ -148,6 +148,34 @@ def test_manifest_rejects_inconsistent_pipeline_versions():
|
||||
CorpusManifest(pipeline_version="evidence-v1", documents=[wrong])
|
||||
|
||||
|
||||
def test_typed_evidence_fragment_metadata_must_be_complete_and_allowlisted():
|
||||
metadata = {
|
||||
"evidence_id": "evidence:fascia-pediatrica",
|
||||
"evidence_kind": "formula",
|
||||
"purposes": ["sql_generation"],
|
||||
"scope": {"concepts": ["fascia pediatrica"], "tables": [], "columns": []},
|
||||
"language": "it",
|
||||
"provenance": {
|
||||
"source_file": "source/paziente.md",
|
||||
"source_sha256": "sha256:" + "a" * 64,
|
||||
"supporting_excerpts": ["Pazienti con età inferiore a 18 anni."],
|
||||
},
|
||||
}
|
||||
assert CanonicalChunk.model_validate({**chunk().model_dump(), "metadata": metadata}).metadata == metadata
|
||||
|
||||
with pytest.raises(ValidationError, match="typed Evidence metadata"):
|
||||
CanonicalChunk.model_validate({
|
||||
**chunk().model_dump(),
|
||||
"metadata": {**metadata, "unreviewed_evidence_note": "not allowed"},
|
||||
})
|
||||
|
||||
with pytest.raises(ValidationError, match="typed Evidence metadata"):
|
||||
CanonicalChunk.model_validate({
|
||||
**chunk().model_dump(),
|
||||
"metadata": {"evidence_kind": "formula"},
|
||||
})
|
||||
|
||||
|
||||
def test_vector_generation_requires_embedding_compatibility():
|
||||
with pytest.raises(ValidationError, match="vector_generation"):
|
||||
CorpusManifest(pipeline_version="evidence-v1", vector_generation="generation:one")
|
||||
|
||||
Reference in New Issue
Block a user