Skip to content

fix: seven bugs found in a whole-branch review, each with a failing-before test - #637

Merged
sophiecarreras merged 1 commit into
masterfrom
review/python-fixes-and-tests
Nov 2, 2026
Merged

sophiecarreras merged 1 commit into
masterfrom
review/python-fixes-and-tests

Conversation

@sophiecarreras

Copy link
Copy Markdown
Contributor

Summary

Seven bug fixes found by reviewing the whole default branch, each with a unit test that fails without the fix, plus strengthened versions of tests that could not fail. One known bug that needs a behavior decision is recorded as an xfail with its reason.

Fixes:

  • SQLite account info: bind allowed as a parameter; reset upload pools after a schema update.
  • Bucket.copy: pass expires, content_disposition, content_encoding and content_language through.
  • start_large_file: send customUploadTimestamp under its wire name.
  • Replication monitor: no hang when the consumer fails.
  • Local folder scan: keep scanning after an unreadable file when no reporter is given.
  • Synchronizer.sync_folders: accept reporter=None.
  • Parallel downloader: hash the data that was written; surface writer errors instead of blocking producers.

Also adds an sdkharness sync leg for reporter=None. Changelog fragments are included (changelog.d/+*.fixed.md).

Open question for the owners

Synchronizer does not shut its executor down when scheduling fails, so queued actions keep running. Whether to wait for them or cancel them is a behavior choice, so it is an xfail here, not a fix.

How this was checked

  • pytest test/unit: 961 passed, 64 skipped, 1 xfailed. ruff check and ruff format --check clean on changed files.
  • Each new test was run without its fix (fails) and with it (passes). Strengthened tests were checked by breaking the production line.
  • Not run: CI, nox sessions, and integration tests that need B2 credentials.
  • The findings and fixes came from an automated review and have not been confirmed by a maintainer yet. Please read the fixes as proposals.

🤖 Generated with Claude Code

…t that fails without the fix

Fixes found by reviewing the default branch, with covering unit tests (fail before, pass after) and strengthened weak tests:
- SQLite account info: bound parameter for allowed capabilities; reset upload pools after schema update
- Bucket.copy: pass expires and content headers through
- start_large_file: send customUploadTimestamp under its wire name
- Replication monitor: no hang when the consumer fails
- Local folder scan: keep scanning after an unreadable file when no reporter is given
- Synchronizer: accept reporter=None
- Parallel downloader: hash written data; surface writer errors

One known bug whose behavior needs an owner decision (executor not shut down when scheduling fails) is recorded as an xfail with its reason.
Also adds a sdkharness sync leg for reporter=None.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@sophiecarreras
sophiecarreras marked this pull request as ready for review November 2, 2026 14:50
@sophiecarreras
sophiecarreras merged commit a965446 into master Nov 2, 2026
28 checks passed
@sophiecarreras
sophiecarreras deleted the review/python-fixes-and-tests branch November 2, 2026 14:50
@ffumero2003 ffumero2003 mentioned this pull request Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant