Skip to content

Update deps and retest quickstart flow#227

Open
dex-the-ai wants to merge 1 commit intomainfrom
deps/update-2026-04-28
Open

Update deps and retest quickstart flow#227
dex-the-ai wants to merge 1 commit intomainfrom
deps/update-2026-04-28

Conversation

@dex-the-ai
Copy link
Copy Markdown

@dex-the-ai dex-the-ai commented Apr 28, 2026

Summary

  • fix FastAPI error handling in the airline/airport query endpoints so unexpected query failures return HTTP 500 instead of 200s after the FastAPI upgrade
  • add typing_extensions as a direct requirement because the app imports Annotated from it
  • keep the canonical pydantic-settings package spelling in requirements.txt

Verification

  • python -m pytest (47 passed)
  • targeted fastapi.testclient.TestClient check covering the four affected query endpoints with dependency overrides to force query failures; each now returns HTTP 500 with the expected error detail

Notes

  • rebased onto main after the dependency bumps landed there separately, so this PR now contains only the remaining compatibility fix plus the explicit typing_extensions dependency / package-name cleanup

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates several dependencies in requirements.txt, including fastapi, pydantic, pydantic_settings, and uvicorn. The reviewer identified an issue where the FastAPI update requires changes to error handling in the application's routers to avoid validation errors. Additionally, suggestions were made to add typing-extensions as a direct dependency, use the canonical hyphenated name for pydantic-settings, and ensure the file ends with a trailing newline.

Comment thread requirements.txt
Comment thread requirements.txt
Comment thread requirements.txt Outdated
Comment thread requirements.txt Outdated
@dex-the-ai
Copy link
Copy Markdown
Author

Adding the new evidence format retroactively so we can see how it reads on a real PR.

Evidence

  • tutorial-maintenance/runs/couchbase-examples__python-quickstart-fastapi/2026-04-28-pr-227/commands.txt — command log for the local Python env creation, install, test, audit, and walkthrough pass
  • tutorial-maintenance/runs/couchbase-examples__python-quickstart-fastapi/2026-04-28-pr-227/verification.md — summary of the local proof for this branch: dependency updates, python -m pytest (47/47), clean pip list --outdated, clean pip-audit, and the Capella-backed FastAPI walkthrough

Manual walkthrough summary

  • created a Python 3.12 virtualenv with uv venv --seed
  • installed requirements and reran the full test suite successfully
  • started Uvicorn locally, loaded /docs, listed airports, created/read/deleted a walkthrough airport document, and verified hotel autocomplete

Gaps

  • no screenshots captured for this run
  • no screen recording captured for this run

If we like this shape, I can make future PRs include this evidence section from the start instead of retrofitting it after the fact.

@dex-the-ai
Copy link
Copy Markdown
Author

Trying a more reviewer-friendly evidence format here: short summary first, then collapsible raw output.

Verification summary

  • created a Python 3.12 virtualenv with uv venv --seed
  • installed updated requirements successfully
  • python -m pytest passed: 47/47
  • uv tool run pip-audit -r requirements.txt reported no known vulnerabilities
  • python -m pip list --outdated --format=json was clean after the updates
  • manual walkthrough passed against Capella-backed config: loaded /docs, listed airports, created/read/deleted airport_live_walkthrough, and verified hotel autocomplete
Pytest output
============================= test session starts ==============================
platform linux -- Python 3.12.13, pytest-9.0.3, pluggy-1.6.0
rootdir: /home/elliot/.openclaw/state/tutorial-maintenance/repos/python-quickstart-fastapi
plugins: anyio-4.13.0
collected 47 items

app/tests/test_airline.py ...............                                [ 31%]
app/tests/test_airport.py ...............                                [ 63%]
app/tests/test_hotel.py ........                                         [ 80%]
app/tests/test_route.py .........                                        [100%]

============================= 47 passed in 22.15s ==============================
Manual walkthrough output
openapi_title=Python Quickstart using FastAPI
airport_list_count=2
airport_first_country=France
created_airport=Walkthrough Airport
fetched_airport=Walkthrough Airport
delete_status=204
hotel_autocomplete_count=25

For larger logs, I’d keep this same shape but inline only the most useful excerpt and keep the complete raw transcript in the local run artifact.

@dex-the-ai dex-the-ai force-pushed the deps/update-2026-04-28 branch from 701bc4a to f6778a5 Compare April 28, 2026 17:43
@dex-the-ai
Copy link
Copy Markdown
Author

Rebased this onto the latest main to clear the requirements.txt conflict after the dependency bump PRs landed separately. I reran python -m pytest (47/47) and rechecked the four affected airline/airport query endpoints with a small TestClient override to confirm they now return HTTP 500 with the expected error detail when the query layer raises. CI has been retriggered on the rebased head and is currently pending.

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