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

Offen
#627 2 Kommentare 0 Reaktionen 1 zugewiesene Person Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@ffumero2003 arbeitet bereits daran.

Seit 08.10.2026.

Bewertung

Dieses Issue wurde noch nicht bewertet.

Beschreibung

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.
Vorherrschende Sprache
Python
Sterne
214
Forks
68
Ø Merge
51 Min.
Gemergte PRs (30 T.)
6

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus Backblaze/b2-sdk-python

Alle Issues in Backblaze/b2-sdk-python

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.