From f3bf5646b091f016c895cb6e9cce250d7d496de2 Mon Sep 17 00:00:00 2001 From: Elior Nataf Lackritz Date: Fri, 9 Oct 2026 12:02:04 -0400 Subject: [PATCH] test(checkpoint): run the delta conformance suite against InMemorySaver in CI The conformance self-test asserted only the base capabilities, and the libs/checkpoint copy of the delta conformance run always skips in CI, so no CI job checked InMemorySaver's delta history against the suite. The self-test now asserts every capability InMemorySaver implements, and the skipped copy is gone. --- .../tests/test_validate_memory.py | 6 +-- .../tests/test_conformance_delta.py | 37 ------------------- 2 files changed, 3 insertions(+), 40 deletions(-) delete mode 100644 libs/checkpoint/tests/test_conformance_delta.py diff --git a/libs/checkpoint-conformance/tests/test_validate_memory.py b/libs/checkpoint-conformance/tests/test_validate_memory.py index f458c82a2..bf50f73e1 100644 --- a/libs/checkpoint-conformance/tests/test_validate_memory.py +++ b/libs/checkpoint-conformance/tests/test_validate_memory.py @@ -14,8 +14,8 @@ async def memory_checkpointer(): @pytest.mark.asyncio -async def test_validate_memory_base(): - """InMemorySaver passes all base capability tests.""" +async def test_validate_memory(): + """InMemorySaver passes the tests of every capability it implements.""" report = await validate(memory_checkpointer) report.print_report() - assert report.passed_all_base(), f"Base tests failed: {report.to_dict()}" + assert report.passed_all(), f"Capability tests failed: {report.to_dict()}" diff --git a/libs/checkpoint/tests/test_conformance_delta.py b/libs/checkpoint/tests/test_conformance_delta.py deleted file mode 100644 index 5443601cf..000000000 --- a/libs/checkpoint/tests/test_conformance_delta.py +++ /dev/null @@ -1,37 +0,0 @@ -"""Run delta-channel conformance capabilities against InMemorySaver.""" - -from __future__ import annotations - -import pytest - -conformance = pytest.importorskip( - "langgraph.checkpoint.conformance", - reason="langgraph-checkpoint-conformance not installed", -) - - -@pytest.mark.asyncio -async def test_delta_channel_conformance(): - # Imported inside the test: the module-level importorskip above is what - # makes these safe, so they cannot move to the top of the file. - from langgraph.checkpoint.conformance import validate # noqa: PLC0415 - from langgraph.checkpoint.conformance.initializer import ( # noqa: PLC0415 - checkpointer_test, - ) - - from langgraph.checkpoint.memory import InMemorySaver # noqa: PLC0415 - - @checkpointer_test(name="InMemorySaver") - async def mem_saver(): - yield InMemorySaver() - - report = await validate( - mem_saver, - capabilities={ - "delta_channel_history", - }, - ) - for cap, result in report.results.items(): - if result.passed is False: - details = "\n".join(result.failures or []) - pytest.fail(f"Capability {cap} failed:\n{details}")