HTML 77.2%
TypeScript 10.5%
Python 9.6%
JavaScript 2.5%
1"""OpenReview is disabled by default (403 challenge on the public JSON endpoints, see the connector docstring); the fixture is a2SYNTHETIC document built from the documented API v2 response shape."""3from aiatlas.connectors.research.openreview import OpenReviewConnector4from aiatlas.sdk.facts import Target5from tests.conftest import claims_of, extract_from_fixture, fixture_path678async def test_disabled_by_default_and_targets():9 c = OpenReviewConnector()10 assert c.enabled_by_default is False11 targets = await c.discover(None) # type: ignore[arg-type]12 assert targets[0].url.startswith("https://api2.openreview.net/notes?content.venueid=ICLR.cc%2F2026%2FConference&limit=100&offset=0")13 assert targets[0].accept == "application/json, text/plain, */*" and len(targets) == 9141516async def test_notes_shape():17 c = OpenReviewConnector()18 target = Target(url="https://api2.openreview.net/notes?content.venueid=ICLR.cc/2026/Conference&limit=100", doc_type="listing",19 key="notes:ICLR.cc/2026/Conference:0", meta={"venue": "ICLR.cc/2026/Conference"})20 facts = await extract_from_fixture(c, target, fixture_path("openreview", "notes-iclr2026-SYNTHETIC.json"), content_type="application/json")21 papers = [e for e in facts.entities if e.entity_type == "paper"]22 assert [p.identifiers for p in papers] == [{"openreview": "synthAbc123"}, {"openreview": "synthDef456"}] # note without title skipped23 a = claims_of(facts, "Synthetic Example Paper A: Scaling Laws for Fixture Networks")24 assert a["venue"] == "ICLR 2026 Poster" and a["venue_id"] == "ICLR.cc/2026/Conference" and a["keywords"] == ["scaling laws", "fixtures"]25 assert a["pdf_url"] == "https://openreview.net/pdf/synthetic-a.pdf" and a["official_url"] == "https://openreview.net/forum?id=synthAbc123"26 assert a["published_at"] == "2025-09-20T00:00:00+00:00" and a["updated_at"].startswith("2025-09-21")27 # researchers only from OpenReview profile ids (`~Name1`), never from bare names28 people = [e for e in facts.entities if e.entity_type == "researcher"]29 assert people and all(e.identifiers.get("openreview_profile", "").startswith("~") for e in people)30 ada = next(e for e in people if e.identifiers["openreview_profile"] == "~Ada_Placeholder1")31 assert ada.name == "Ada Placeholder" and ada.identity_confidence == "high"32 authored = [r for r in facts.relations if r.predicate == "authored"]33 assert len(authored) == len(people) and all(r.subject.identifiers.get("openreview_profile") for r in authored)34 assert claims_of(facts, "Ada Placeholder")["openreview_profile_url"] == "https://openreview.net/profile?id=~Ada_Placeholder1"35 b = claims_of(facts, "Synthetic Example Paper B")36 assert b["venue"] == "ICLR.cc/2026/Conference" and b["pdf_url"] == "https://openreview.net/pdf?id=synthDef456" and b["published_at"].startswith("2025-09-18")37