|
|
@ -1,6 +1,6 @@ |
|
|
|
import pytest |
|
|
|
|
|
|
|
from fastapi.testclient import TestClient |
|
|
|
|
|
|
|
from docs_src.path_params.tutorial001 import app |
|
|
|
|
|
|
|
|
|
|
@ -33,11 +33,9 @@ def test_with_string_parameters(client, parameter_value): |
|
|
|
assert response.json() == {"item_id": str(parameter)} |
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize("parameter_value", [ |
|
|
|
[1, 2, 3], |
|
|
|
[-1.1, 0.0, 1.2], |
|
|
|
["alpha", "beta", "gamma"] |
|
|
|
]) |
|
|
|
@pytest.mark.parametrize( |
|
|
|
"parameter_value", [[1, 2, 3], [-1.1, 0.0, 1.2], ["alpha", "beta", "gamma"]] |
|
|
|
) |
|
|
|
def test_with_list_parameters(client, parameter_value): |
|
|
|
parameter: list = parameter_value |
|
|
|
response = client.get(f"/items/{parameter}") |
|
|
@ -50,10 +48,7 @@ def test_openapi_schema(client): |
|
|
|
assert response.status_code == 200 |
|
|
|
assert response.json() == { |
|
|
|
"openapi": "3.1.0", |
|
|
|
"info": { |
|
|
|
"title": "FastAPI", |
|
|
|
"version": "0.1.0" |
|
|
|
}, |
|
|
|
"info": {"title": "FastAPI", "version": "0.1.0"}, |
|
|
|
"paths": { |
|
|
|
"/items/{item_id}": { |
|
|
|
"get": { |
|
|
@ -64,19 +59,13 @@ def test_openapi_schema(client): |
|
|
|
"name": "item_id", |
|
|
|
"in": "path", |
|
|
|
"required": True, |
|
|
|
"schema": { |
|
|
|
"title": "Item Id" |
|
|
|
} |
|
|
|
"schema": {"title": "Item Id"}, |
|
|
|
} |
|
|
|
], |
|
|
|
"responses": { |
|
|
|
"200": { |
|
|
|
"description": "Successful Response", |
|
|
|
"content": { |
|
|
|
"application/json": { |
|
|
|
"schema": {} |
|
|
|
} |
|
|
|
} |
|
|
|
"content": {"application/json": {"schema": {}}}, |
|
|
|
}, |
|
|
|
"422": { |
|
|
|
"description": "Validation Error", |
|
|
@ -86,9 +75,9 @@ def test_openapi_schema(client): |
|
|
|
"$ref": "#/components/schemas/HTTPValidationError" |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
@ -97,49 +86,30 @@ def test_openapi_schema(client): |
|
|
|
"HTTPValidationError": { |
|
|
|
"properties": { |
|
|
|
"detail": { |
|
|
|
"items": { |
|
|
|
"$ref": "#/components/schemas/ValidationError" |
|
|
|
}, |
|
|
|
"items": {"$ref": "#/components/schemas/ValidationError"}, |
|
|
|
"type": "array", |
|
|
|
"title": "Detail" |
|
|
|
"title": "Detail", |
|
|
|
} |
|
|
|
}, |
|
|
|
"type": "object", |
|
|
|
"title": "HTTPValidationError" |
|
|
|
"title": "HTTPValidationError", |
|
|
|
}, |
|
|
|
"ValidationError": { |
|
|
|
"properties": { |
|
|
|
"loc": { |
|
|
|
"items": { |
|
|
|
"anyOf": [ |
|
|
|
{ |
|
|
|
"type": "string" |
|
|
|
}, |
|
|
|
{ |
|
|
|
"type": "integer" |
|
|
|
} |
|
|
|
] |
|
|
|
"anyOf": [{"type": "string"}, {"type": "integer"}] |
|
|
|
}, |
|
|
|
"type": "array", |
|
|
|
"title": "Location" |
|
|
|
"title": "Location", |
|
|
|
}, |
|
|
|
"msg": { |
|
|
|
"type": "string", |
|
|
|
"title": "Message" |
|
|
|
}, |
|
|
|
"type": { |
|
|
|
"type": "string", |
|
|
|
"title": "Error Type" |
|
|
|
} |
|
|
|
"msg": {"type": "string", "title": "Message"}, |
|
|
|
"type": {"type": "string", "title": "Error Type"}, |
|
|
|
}, |
|
|
|
"type": "object", |
|
|
|
"required": [ |
|
|
|
"loc", |
|
|
|
"msg", |
|
|
|
"type" |
|
|
|
], |
|
|
|
"title": "ValidationError" |
|
|
|
} |
|
|
|
} |
|
|
|
"required": ["loc", "msg", "type"], |
|
|
|
"title": "ValidationError", |
|
|
|
}, |
|
|
|
} |
|
|
|
}, |
|
|
|
} |