Repository navigation
Description
Problem
#1481 made the live JS-to-Python test run in CI and fail (not skip) when the JS build is missing. Four smaller points from the review of #1470 remain. The comment on #1470 lists them; this issue tracks them:
- The two replay tests
pytest.skipwhen the fixture file is missing, so deletingtests/fixtures/reporting-row-storage-interop-v1/leaves the suite green. - Each fixture is 12,926 lines (about 164 KB) for 12 row sets, 12 chunks, 3 bodies, and 6 objects, written with
indent=1. - Fixture regeneration runs inside the live test behind
ADCP_UPDATE_INTEROP_FIXTURES=1, so a test body writes files into the source tree. docs/reporting-row-storage.mdsays the JavaScript SDK can replaypython-written.json; there is no such test inadcp-client, and the same paragraph still says the live test "skips" without Node, which is no longer true underADCP_REQUIRE_JS_INTEROP=1.
Evidence
All references are to main at 47084e83a; the JS SDK is adcp-client main at 7c7f730f4.
-
tests/conformance/reporting/test_reporting_row_storage_interop_pg.py:144-145and:161-162:if not path.exists(): pytest.skip("interop fixtures have not been generated")
-
test_reporting_row_storage_interop_pg.py:129-137: insidetest_one_database_and_one_bucket_in_both_directions,if os.environ.get("ADCP_UPDATE_INTEROP_FIXTURES") == "1":writesjs-written.jsonandpython-written.jsonwithjson.dumps(..., indent=1, sort_keys=True). -
tests/fixtures/reporting-row-storage-interop-v1/js-written.jsonandpython-written.json: 12,926 lines each;stateholdsrow_sets12,row_chunks12,chunk_bodies3,objects6;expectedholds 12 entries. -
docs/reporting-row-storage.md:363: "It needs Node and a builtadcp-clientcheckout (npm ci && npm run build); without them it skips." -
docs/reporting-row-storage.md:366: "The JavaScript SDK can replaypython-written.jsonthe same way." A search ofadcp-clienttest/andsrc/at7c7f730f4forpython-writtenorinterop-v1finds nothing. -
.github/workflows/ci.yml:298-369: thereporting-js-interoplane setsADCP_REQUIRE_JS_INTEROP: "1"and runs the whole module, so the replay tests run there too, but only the live test is required to not skip.
Suggested fix
- Replace the two
pytest.skipcalls with a hard failure (the fixtures are committed, so their absence is a repository defect, not an environment one). - Shrink the fixtures to what
replay_statereads, and write them withseparators=(",", ":")orindent=None; a few hundred lines each is enough for 12 row sets. - Move regeneration into a script (for example
scripts/regenerate_row_storage_interop_fixtures.py) that invokes the same driver, and remove theADCP_UPDATE_INTEROP_FIXTURESbranch from the test. - In
docs/reporting-row-storage.md, remove the sentence about the JavaScript SDK replayingpython-written.json(or add that test toadcp-clientand link it), and say that CI runs the live test withADCP_REQUIRE_JS_INTEROP=1.
Activity
feat(reporting)!: move the Postgres and object-storage stores to adcp…
docs(reporting): migration note, changelog and interop fixture toolin…
feat(reporting)!: move the Postgres and object-storage stores to adcp…
docs(reporting): migration note, changelog and interop fixture toolin…
feat(reporting)!: move the Postgres and object-storage stores to adcp…
docs(reporting): migration note, changelog and interop fixture toolin…
feat(reporting)!: ship the Reliable Reporting storage as adcp-reporti…
bokelley commentedon Nov 8, 2026
All four requests implemented in Python #1557: missing committed fixtures fail, fixtures are compact, regeneration is a separate script and the unsupported JS-replay documentation claim is removed. Current replay tests assert path.is_file. This closure does not invent an independent TS replay test.
Closed in a 3.3 triage pass. Reopen if anything here is still outstanding.
🤖 Generated with Claude Code