test_triple_export.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from app.models import AtlasAlias, AtlasClaim, AtlasClaimObject, AtlasEntity, AtlasProvenance
  2. from app.triple_export import entity_to_turtle
  3. def test_entity_to_turtle_contains_expected_triples():
  4. entity = AtlasEntity(
  5. atlas_id="atlas:012gx2abcd123456",
  6. canonical_label="Joe Biden",
  7. entity_type="Person",
  8. aliases=[AtlasAlias(label="Joe Biden")],
  9. claims=[
  10. AtlasClaim(
  11. claim_id="clm_raw_ident_mid_/m/012gx2",
  12. subject="atlas:012gx2abcd123456",
  13. predicate="atlas:hasIdentifier",
  14. object=AtlasClaimObject(kind="identifier", id_type="mid", value="/m/012gx2"),
  15. layer="raw",
  16. provenance=AtlasProvenance(source="google-trends", retrieval_method="trends-resolution", confidence=0.9, retrieved_at="2026-04-03T17:33:21.651528+00:00"),
  17. ),
  18. AtlasClaim(
  19. claim_id="clm_drv_canonical_type",
  20. subject="atlas:012gx2abcd123456",
  21. predicate="atlas:hasCanonicalType",
  22. object=AtlasClaimObject(kind="type", value="atlas:Person"),
  23. layer="derived",
  24. ),
  25. ],
  26. needs_curation=False,
  27. )
  28. ttl = entity_to_turtle(entity)
  29. assert '@prefix atlas: <http://world.eu.org/atlas_ontology#> .' in ttl
  30. assert 'atlas:canonicalLabel "Joe Biden"' in ttl
  31. assert 'atlas:hasCanonicalType atlas:Person' in ttl
  32. assert 'atlas:hasIdentifier' in ttl
  33. assert 'atlas:needsCuration false' in ttl
  34. assert 'a atlas:Claim' in ttl
  35. assert 'atlas:claimPredicate "atlas:hasIdentifier"' in ttl
  36. assert 'atlas:claimStatus "active"' in ttl