diff --git a/.github/workflows/two-mode-provenance.yml b/.github/workflows/two-mode-provenance.yml index 6fbe64ff..b2847268 100644 --- a/.github/workflows/two-mode-provenance.yml +++ b/.github/workflows/two-mode-provenance.yml @@ -115,12 +115,14 @@ jobs: # close can make pytest report BrokenPipe and fail a valid gate. run: | "$SN39_VENV/bin/python" -m pytest \ + scaffold/publisher/tests/test_snapshot_candidates.py \ scaffold/publisher/tests/test_validator_two_mode.py \ scaffold/publisher/tests/test_validator_thin_validated_supply.py \ scaffold/publisher/tests/test_validator_lifecycle.py \ --collect-only -q | grep test_full_path_positive_revoked_restored \ >/dev/null "$SN39_VENV/bin/python" -m pytest -q \ + scaffold/publisher/tests/test_snapshot_candidates.py \ scaffold/publisher/tests/test_sn39_continuous_authorization.py \ scaffold/publisher/tests/test_sn39_launch_approval.py \ scaffold/publisher/tests/test_validator_two_mode.py \ diff --git a/scaffold/publisher/tests/test_snapshot_candidates.py b/scaffold/publisher/tests/test_snapshot_candidates.py index 029c4404..80a04194 100644 --- a/scaffold/publisher/tests/test_snapshot_candidates.py +++ b/scaffold/publisher/tests/test_snapshot_candidates.py @@ -67,7 +67,18 @@ def test_capture_produces_a_valid_sorted_snapshot(): assert fake.hash_calls == [123] # The confidential exporter accepts the captured document verbatim. - from cathedral.score_class import validate_candidate_snapshot + # + # `cathedral` is the cathedral-compute package, not this one. The base test + # extra does not install it, so a standalone checkout skips only this + # cross-repository assertion. Required two-mode CI installs the provenance + # extra, imports cathedral explicitly, and includes this file. That keeps the + # contract mandatory on the launch path while preserving a useful standalone + # test suite. Everything above this line is asserted in both environments. + validate_candidate_snapshot = pytest.importorskip( + "cathedral.score_class", + reason="needs the cathedral-compute package (which provides `cathedral`) " + "installed alongside this one", + ).validate_candidate_snapshot binding = validate_candidate_snapshot(document, network="finney", netuid=39) assert binding["block"] == 123