forked from loafle/openapi-generator-original
add a test case for python-fastapi query parameter default value (#15744)
This commit is contained in:
@@ -8,6 +8,8 @@ pyproject.toml
|
||||
requirements.txt
|
||||
setup.cfg
|
||||
src/openapi_server/apis/__init__.py
|
||||
src/openapi_server/apis/fake_api.py
|
||||
src/openapi_server/apis/fake_api_base.py
|
||||
src/openapi_server/apis/pet_api.py
|
||||
src/openapi_server/apis/pet_api_base.py
|
||||
src/openapi_server/apis/store_api.py
|
||||
|
||||
@@ -582,6 +582,36 @@ paths:
|
||||
summary: Updated user
|
||||
tags:
|
||||
- user
|
||||
/fake/query_param_default:
|
||||
get:
|
||||
description: ""
|
||||
operationId: fake_query_param_default
|
||||
parameters:
|
||||
- description: has default value
|
||||
explode: true
|
||||
in: query
|
||||
name: has_default
|
||||
required: false
|
||||
schema:
|
||||
default: Hello World
|
||||
type: string
|
||||
style: form
|
||||
- description: no default value
|
||||
explode: true
|
||||
in: query
|
||||
name: no_default
|
||||
required: false
|
||||
schema:
|
||||
type: string
|
||||
style: form
|
||||
responses:
|
||||
"400":
|
||||
description: Invalid username supplied
|
||||
"404":
|
||||
description: User not found
|
||||
summary: test query parameter default value
|
||||
tags:
|
||||
- fake
|
||||
components:
|
||||
requestBodies:
|
||||
UserArray:
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
# coding: utf-8
|
||||
|
||||
from typing import Dict, List # noqa: F401
|
||||
import importlib
|
||||
import pkgutil
|
||||
|
||||
from openapi_server.apis.fake_api_base import BaseFakeApi
|
||||
import openapi_server.impl
|
||||
|
||||
from fastapi import ( # noqa: F401
|
||||
APIRouter,
|
||||
Body,
|
||||
Cookie,
|
||||
Depends,
|
||||
Form,
|
||||
Header,
|
||||
Path,
|
||||
Query,
|
||||
Response,
|
||||
Security,
|
||||
status,
|
||||
)
|
||||
|
||||
from openapi_server.models.extra_models import TokenModel # noqa: F401
|
||||
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
ns_pkg = openapi_server.impl
|
||||
for _, name, _ in pkgutil.iter_modules(ns_pkg.__path__, ns_pkg.__name__ + "."):
|
||||
importlib.import_module(name)
|
||||
|
||||
|
||||
@router.get(
|
||||
"/fake/query_param_default",
|
||||
responses={
|
||||
400: {"description": "Invalid username supplied"},
|
||||
404: {"description": "User not found"},
|
||||
},
|
||||
tags=["fake"],
|
||||
summary="test query parameter default value",
|
||||
response_model_by_alias=True,
|
||||
)
|
||||
async def fake_query_param_default(
|
||||
has_default: str = Query('Hello World', description="has default value"),
|
||||
no_default: str = Query(None, description="no default value"),
|
||||
) -> None:
|
||||
""""""
|
||||
return BaseFakeApi.subclasses[0]().fake_query_param_default(has_default, no_default)
|
||||
@@ -0,0 +1,19 @@
|
||||
# coding: utf-8
|
||||
|
||||
from typing import ClassVar, Dict, List, Tuple # noqa: F401
|
||||
|
||||
|
||||
|
||||
class BaseFakeApi:
|
||||
subclasses: ClassVar[Tuple] = ()
|
||||
|
||||
def __init_subclass__(cls, **kwargs):
|
||||
super().__init_subclass__(**kwargs)
|
||||
BaseFakeApi.subclasses = BaseFakeApi.subclasses + (cls,)
|
||||
def fake_query_param_default(
|
||||
self,
|
||||
has_default: str,
|
||||
no_default: str,
|
||||
) -> None:
|
||||
""""""
|
||||
...
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
from fastapi import FastAPI
|
||||
|
||||
from openapi_server.apis.fake_api import router as FakeApiRouter
|
||||
from openapi_server.apis.pet_api import router as PetApiRouter
|
||||
from openapi_server.apis.store_api import router as StoreApiRouter
|
||||
from openapi_server.apis.user_api import router as UserApiRouter
|
||||
@@ -22,6 +23,7 @@ app = FastAPI(
|
||||
version="1.0.0",
|
||||
)
|
||||
|
||||
app.include_router(FakeApiRouter)
|
||||
app.include_router(PetApiRouter)
|
||||
app.include_router(StoreApiRouter)
|
||||
app.include_router(UserApiRouter)
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
# coding: utf-8
|
||||
|
||||
from fastapi.testclient import TestClient
|
||||
|
||||
|
||||
|
||||
|
||||
def test_fake_query_param_default(client: TestClient):
|
||||
"""Test case for fake_query_param_default
|
||||
|
||||
test query parameter default value
|
||||
"""
|
||||
params = [("has_default", 'Hello World'), ("no_default", 'no_default_example')]
|
||||
headers = {
|
||||
}
|
||||
response = client.request(
|
||||
"GET",
|
||||
"/fake/query_param_default",
|
||||
headers=headers,
|
||||
params=params,
|
||||
)
|
||||
|
||||
# uncomment below to assert the status code of the HTTP response
|
||||
#assert response.status_code == 200
|
||||
|
||||
Reference in New Issue
Block a user