Repository navigation
fix(google): recover provider errors from HTTPError; valid Drive field mask - #37
Merged
Merged
Conversation
…nvalid Drive field The live Drive read exposed two defects: FILE_FIELDS named 'extension' (Drive rejected the listing with 400 Invalid field selection — the field is 'fileExtension'), and provider 4xx/5xx surfaced as 'provider request unreachable: HTTPError' because urllib's transport raises on non-2xx and discovery._request folded every exception into the type name. _request now recovers the HTTPError's status/body so provider errors keep their status and redacted detail (the scope hints fire); gdrive's direct-transport paths (multipart upload, download, permanent delete) share one _transport helper with the same recovery. Fake transports returning (status, raw) are unaffected.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Live verification of the Google CLIs exposed two defects:
FILE_FIELDSnamedextension, which Drive rejects with400 Invalid field selection— the field isfileExtension.HTTPErroron non-2xx, anddiscovery._requestfolded every exception intoprovider request unreachable: HTTPError, losing the status and the provider's message (and with it the 403 scope hints)._requestnow recovers the HTTPError status/body; gdrive's direct-transport paths (multipart upload, download, permanent delete) share one_transporthelper with the same recovery. Fake transports returning(status, raw)— the existing tests — are unaffected.Includes a regression test: an
HTTPError(403)from the transport produces aGDriveOpsErrorwith status 403, the provider's message, and the scope hint.