Beispiel
fastapi 0.141.1: Test a FastAPI app with TestClient and no network, and assert the validation error bodies it returns
Verifiziertes Beispiel für pypi fastapi 0.141.1: Test a FastAPI app with TestClient and no network, and assert the validation error bodies it returns. Der…
sha256:8bcaa6f98cea6edf681d2b0f76a18856106de62aab70009b1d22a5a50abb1257
Dieses Netzwerk bietet eine Sache: ein Sample, das baut. Es hat es in einer Sandbox ausgeführt und die signierte Quittung behalten. Es bewertet nichts und garantiert nichts — ob derselbe Code bei Ihnen baut, hat es nicht gemessen.
Wie viele verschiedene Signaturschlüssel eine bestandene Vertragsquittung eingereicht haben. Einer ist der Autor allein; mehr als einer heißt, jemand anderes hat es auch gebaut. Ein Schlüssel wird selbst erzeugt und hat keine registrierte Identität dahinter — gezählt werden Schlüssel, nicht Personen.
MIT-0
Ausführungsbelege
Die deklarierte Umgebung und die signierten Läufe stehen getrennt, damit Sie genau sehen, was dieses Sample ausgeführt hat und wo.
- Beleggrundlage
- Signierter Vertrag bestanden
- Verifizierungsbelege
- 2
- Signaturschlüssel, die es gebaut haben
- 2
Deklarierte Umgebung
python 3.12 linux x64 python 3.12 python pip
Umgebungen der Verifizierungsläufe
| Umgebung | Contract | Stufen | Lauf |
|---|---|---|---|
| python 3.12 · linux alpine/x64 · docker ed25519:a2ec939a4c60e243 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · python@1 |
2026-08-14 |
| python 3.12 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 | PASS | compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS CONTAINER_RUN · python@1 |
2026-08-18 |
Fall
HOW- Ziel
- Test a FastAPI app with TestClient and no network, and assert the validation error bodies it returns
- Symbole
-
- fastapi.testclient.TestClient
- fastapi.HTTPException
- response_model
- lifespan
- pydantic.BaseModel
- httpx2.HTTPStatusError
- starlette.exceptions.StarletteDeprecationWarning
- Umgebung
- python 3.12
- Erstellt
- 2026-08-14T08:53:22Z
Contract
- assert TestClient targets http://testserver, so the run needs no socket, no port and no DNS
- assert TestClient drives the real ASGI pipeline, so pure ASGI middleware runs and stamps a header on the response
- assert calling the endpoint function directly does no coercion, so it returns nonsense instead of a 422
- assert an int path parameter given text answers 422 with detail[0].type int_parsing and loc path/item_id
- assert every 422 entry carries exactly type, loc, msg and input, and input echoes the submitted body back to the caller
- assert a missing body field answers 422 with type missing and loc body/age
- assert a valid body answers the declared 201 and response_model removes the extra field the handler returned
- assert an unexpected field in the request body is ignored by the model rather than rejected
- assert HTTPException(404) serialises to a single detail string
- assert the lifespan runs only when TestClient is entered as a context manager, so a plain client leaves startup unrun
- assert starlette 1.6 binds httpx2 for TestClient when both httpx2 and httpx are installed, so the response is not an httpx.Response
- assert raise_for_status on a TestClient response raises httpx2.HTTPStatusError, which except httpx.HTTPStatusError does not catch
- assert fastapi.testclient.TestClient is starlette's class re-exported unchanged
- assert hiding httpx2 makes the import fall back to httpx with a StarletteDeprecationWarning, which is a UserWarning and not a DeprecationWarning
Dateien
- csx.json
- requirements.txt
- src/__init__.py
- src/app.py
- test/contract.py