You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(ci): repair the 17 CI-only test failures the matrix has been masking
The tests job reached pytest for the first time this cycle and reported
19 failures on every Python version. None were new; earlier runs died at the
build or lint step and never got far enough to show them.
expected_symbols.txt was never in the repo (6 failures)
`.gitignore` carries a blanket `*.txt`, so the public-API contract fixture
was untracked. test_public_symbols.py therefore passed on any developer
checkout and failed in CI with FileNotFoundError on all six of its tests -
the SemVer surface guard was enforced nowhere but locally. Add a negation
and commit the fixture.
TwoStageDecoder rejected short syndromes (1 failure)
test_two_stage_decoder_syndrome_validation, added in the v0.7.0 release
commit, asserts a trimmed syndrome decodes to an all-zero correction. The
native core is strict, so it raised `ValueError: Syndrome length mismatch`
and the test had never passed. Zero-pad up to n_checks in the wrapper, the
same way pymatching_compat.decode_batch already does for the matching
decoders; over-long input is still rejected.
Stripe tests required production secrets (10 failures)
They need STRIPE_SECRET_KEY / QECTOR_LICENSE_PRIVATE_KEY_B64, which are
deliberately absent from CI, so they failed rather than skipped.
test_stripe_integration.py already had the `_has_stripe_key` + skipif
convention; extend it to the two files that lacked it. The tests asserting
the *absence* path - test_raises_without_secret_key,
test_missing_private_key_is_loud - are left unguarded on purpose, so the
"fail loudly without a key" guarantee still runs in CI.
Still open: 2 routing tests that monkeypatch gpu_backend and only pass on a
machine with a real GPU. The patch seam is correct locally, so diagnosing it
needs CI evidence rather than guesswork.
0 commit comments