Skip to content

fix: raise errors for unsuccessful Places Photo responses - #9

Draft
illuminati1911 wants to merge 1 commit into
masterfrom
places-photo-response-errors
Draft

illuminati1911 wants to merge 1 commit into
masterfrom
places-photo-response-errors

Conversation

@illuminati1911

Copy link
Copy Markdown
Collaborator

Summary

  • Check Places Photo HTTP status before returning its image iterator.
  • Raise HTTPError immediately for non-2xx responses, preserving the status code and closing the response without consuming the error body.
  • Preserve lazy binary streaming on success and existing transient retries.
  • Add behavioral regression coverage, document the exception, and add a changelog entry. Static Maps and shared retry behavior are unchanged.

The existing implementation exposes iter_content() without validating the photo response status: https://github.com/googlemaps/google-maps-services-python/blob/d3b71ab1333cff0f900d2db6b39c1356341a5ea2/googlemaps/places.py#L535-L544

Verification

On Python 3.10.20:

  • python -m pytest tests/test_places.py — 10 passed, including 4 replacement photo tests.
  • python -m pytest — 108 passed.
  • Real localhost HTTP checks passed for JSON/text/HTML errors, terminal HTTP 429, successful binary streaming, 503-to-success, and 503-to-terminal-error transitions. No Google Maps requests or real credentials were used.
  • nox --download-python never -s docs --force-python 3.10 — passed; visually inspected the rendered exception and iterator-return documentation and changelog.
  • Diff/whitespace checks passed.

The prescribed Python 3.7 docs build remains unverified because that interpreter is unavailable. The Python 3.10 build is supplemental. Tests ran directly using the repository's test dependencies, avoiding the automatic Codecov upload.

@illuminati1911 illuminati1911 self-assigned this Oct 19, 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