mirror of
https://github.com/fastapi/fastapi.git
synced 2026-01-03 19:50:52 -05:00
* ⬆ Bump ruff from 0.6.4 to 0.9.4 Bumps [ruff](https://github.com/astral-sh/ruff) from 0.6.4 to 0.9.4. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](https://github.com/astral-sh/ruff/compare/0.6.4...0.9.4) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> * update pre-commit accordingly and make formatting changes * 🎨 [pre-commit.ci] Auto format from pre-commit.com hooks --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alejandra <90076947+alejsdev@users.noreply.github.com> Co-authored-by: svlandeg <sofie.vanlandeghem@gmail.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
78 lines
1.8 KiB
Python
78 lines
1.8 KiB
Python
from typing import TypeVar
|
|
|
|
from fastapi import Depends, FastAPI
|
|
from fastapi.testclient import TestClient
|
|
from typing_extensions import Annotated
|
|
|
|
app = FastAPI()
|
|
|
|
T = TypeVar("T")
|
|
|
|
Dep = Annotated[T, Depends()]
|
|
|
|
|
|
class A:
|
|
pass
|
|
|
|
|
|
class B:
|
|
pass
|
|
|
|
|
|
@app.get("/a")
|
|
async def a(dep: Dep[A]):
|
|
return {"cls": dep.__class__.__name__}
|
|
|
|
|
|
@app.get("/b")
|
|
async def b(dep: Dep[B]):
|
|
return {"cls": dep.__class__.__name__}
|
|
|
|
|
|
client = TestClient(app)
|
|
|
|
|
|
def test_generic_parameterless_depends():
|
|
response = client.get("/a")
|
|
assert response.status_code == 200, response.text
|
|
assert response.json() == {"cls": "A"}
|
|
|
|
response = client.get("/b")
|
|
assert response.status_code == 200, response.text
|
|
assert response.json() == {"cls": "B"}
|
|
|
|
|
|
def test_openapi_schema():
|
|
response = client.get("/openapi.json")
|
|
assert response.status_code == 200, response.text
|
|
assert response.json() == {
|
|
"info": {"title": "FastAPI", "version": "0.1.0"},
|
|
"openapi": "3.1.0",
|
|
"paths": {
|
|
"/a": {
|
|
"get": {
|
|
"operationId": "a_a_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {"application/json": {"schema": {}}},
|
|
"description": "Successful Response",
|
|
}
|
|
},
|
|
"summary": "A",
|
|
}
|
|
},
|
|
"/b": {
|
|
"get": {
|
|
"operationId": "b_b_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {"application/json": {"schema": {}}},
|
|
"description": "Successful Response",
|
|
}
|
|
},
|
|
"summary": "B",
|
|
}
|
|
},
|
|
},
|
|
}
|