ci: cli-compat fails — 4 sse/sync integration tests broken in B2_Command_Line_Tool (all environments)

Aperta
#627 2 commenti 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@ffumero2003 ci sta già lavorando.

Dal 8/10/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

bug testing

The cli-compat job keeps master CI red. After fuller analysis the scope is not Python-3.14-specific (original framing corrected): it is 4 integration tests that fail across every environment, and they live in the B2_Command_Line_Tool repo.

Actual scope

Four tests fail, always the same ones:

  • test/integration/test_b2_command_line.py::test_sse_b2
  • test/integration/test_b2_command_line.py::test_sse_c
  • test/integration/test_b2_command_line.py::test_sync_up[-None]
  • test/integration/test_b2_command_line.py::test_sync_up[sync-None]

They fail with a plain assert expected == actual at test/integration/helpers.py:138 — i.e. the CLI's server-side-encryption / sync behavior no longer matches what its own tests expect.

It is not a Python 3.14 issue. In B2_Command_Line_Tool's own CI these 4 fail on 3.10, 3.12, 3.14, pypy3.10, Docker, Linux bundles, Windows and macOS — the same "4 failed" everywhere. It only looked 3.14-specific here because this SDK's cli-compat job runs the CLI's unit tests on 3.10/3.12 but its integration tests only on the 3.14 entry, so 3.14 was the only red job. The Python-3.14 fork()/forkpty() warnings in the log are noise, not the cause.

It is not caused by this SDK release. The SDK's own unit tests pass on all versions; cli-compat is just surfacing a pre-existing break that already reddens the CLI repo's own CI.

The correct way to fix this

  1. Fix the root cause in B2_Command_Line_Tool — the failing tests and the assertion live there. A passing fix turns both the CLI's CI and this SDK's cli-compat job green at once.
  2. First determine which kind of fix it is: pull the expected-vs-actual for one sse test and decide whether it's (a) a stale test expectation to update (the sse/sync output changed deliberately — the assertion context references apiver_int >= 4, consistent with the CLI v5.0.0 / API v4 change), or (b) a real sse/sync regression to fix in code. Correlate with the most recent change that touched sse inheritance / sync output.
  3. Do not mark the 3.14 job continue-on-error / allow-failure. That would hide a broad, legitimate failure (and wouldn't help, since every version fails). Suppressing CI is the anti-pattern we're trying to avoid.
  4. Track it where the fix lands: open/raise the primary issue on B2_Command_Line_Tool and link it here. This issue stays as the SDK-side visibility (cli-compat red) and closes when the CLI fix propagates.

Standing practice to carry forward

  • No release while CI is red — the red here is real, so the answer is to fix it, not route around it.
  • cli-compat is a cross-repo canary: when it's red, check whether the downstream repo (the CLI) is red on its own first; if it is, the cause is localized there, not in the SDK change.

Acceptance

  • The 4 sse/sync integration tests pass in B2_Command_Line_Tool's CI.
  • This SDK's cli-compat job is green; master Continuous Integration is green.
  • No releases are cut while CI is red.
Lingua principale
Python
Stelle
214
Fork
68
Merge medio
51m
PR unite (30g)
6

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Backblaze/b2-sdk-python

Tutte le issue di Backblaze/b2-sdk-python

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.