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

Ouverte
#627 2 commentaires 0 réactions 1 personne assignée Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@ffumero2003 y travaille déjà.

Depuis le 8/10/2026.

Évaluation

Cette issue n'a pas encore été évaluée.

Description

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.
Langage dominant
Python
Étoiles
214
Forks
68
Merge moyen
51 min
PR mergées (30 j)
6

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Backblaze/b2-sdk-python

Toutes les issues de Backblaze/b2-sdk-python

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.