mirror of https://github.com/tiangolo/fastapi.git
Update to Python 3.10 syntax
This commit is contained in:
parent
c49c90efc0
commit
d10fa5df11
|
|
@ -1,4 +1,4 @@
|
|||
from typing import Annotated, Any, Union
|
||||
from typing import Annotated, Any
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
import pytest
|
||||
|
|
@ -22,10 +22,10 @@ def convert(v: Any) -> Any:
|
|||
|
||||
@app.post("/nullable-required")
|
||||
async def read_nullable_required(
|
||||
int_val: Annotated[Union[int, None], Body(), BeforeValidator(lambda v: convert(v))],
|
||||
str_val: Annotated[Union[str, None], Body(), BeforeValidator(lambda v: convert(v))],
|
||||
int_val: Annotated[int | None, Body(), BeforeValidator(lambda v: convert(v))],
|
||||
str_val: Annotated[str | None, Body(), BeforeValidator(lambda v: convert(v))],
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Body(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
|
|
@ -39,9 +39,9 @@ async def read_nullable_required(
|
|||
|
||||
|
||||
class ModelNullableRequired(BaseModel):
|
||||
int_val: Union[int, None]
|
||||
str_val: Union[str, None]
|
||||
list_val: Union[list[int], None]
|
||||
int_val: int | None
|
||||
str_val: str | None
|
||||
list_val: list[int] | None
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
def validate_all(cls, v):
|
||||
|
|
@ -60,14 +60,14 @@ async def read_model_nullable_required(params: ModelNullableRequired):
|
|||
|
||||
@app.post("/nullable-required-str")
|
||||
async def read_nullable_required_no_embed_str(
|
||||
str_val: Annotated[Union[str, None], Body(), BeforeValidator(lambda v: convert(v))],
|
||||
str_val: Annotated[str | None, Body(), BeforeValidator(lambda v: convert(v))],
|
||||
):
|
||||
return {"val": str_val}
|
||||
|
||||
|
||||
@app.post("/nullable-required-int")
|
||||
async def read_nullable_required_no_embed_int(
|
||||
int_val: Annotated[Union[int, None], Body(), BeforeValidator(lambda v: convert(v))],
|
||||
int_val: Annotated[int | None, Body(), BeforeValidator(lambda v: convert(v))],
|
||||
):
|
||||
return {"val": int_val}
|
||||
|
||||
|
|
@ -75,7 +75,7 @@ async def read_nullable_required_no_embed_int(
|
|||
@app.post("/nullable-required-list")
|
||||
async def read_nullable_required_no_embed_list(
|
||||
list_val: Annotated[
|
||||
Union[list[int], None], Body(), BeforeValidator(lambda v: convert(v))
|
||||
list[int] | None, Body(), BeforeValidator(lambda v: convert(v))
|
||||
],
|
||||
):
|
||||
return {"val": list_val}
|
||||
|
|
@ -398,17 +398,17 @@ def test_nullable_required_no_embed_pass_value(path: str, value: Any):
|
|||
@app.post("/nullable-non-required")
|
||||
async def read_nullable_non_required(
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
Body(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
Body(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Body(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
|
|
@ -422,9 +422,9 @@ async def read_nullable_non_required(
|
|||
|
||||
|
||||
class ModelNullableNonRequired(BaseModel):
|
||||
int_val: Union[int, None] = None
|
||||
str_val: Union[str, None] = None
|
||||
list_val: Union[list[int], None] = None
|
||||
int_val: int | None = None
|
||||
str_val: str | None = None
|
||||
list_val: list[int] | None = None
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
def validate_all(cls, v):
|
||||
|
|
@ -446,7 +446,7 @@ async def read_model_nullable_non_required(
|
|||
@app.post("/nullable-non-required-str")
|
||||
async def read_nullable_non_required_no_embed_str(
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
Body(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
|
|
@ -457,7 +457,7 @@ async def read_nullable_non_required_no_embed_str(
|
|||
@app.post("/nullable-non-required-int")
|
||||
async def read_nullable_non_required_no_embed_int(
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
Body(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
|
|
@ -468,7 +468,7 @@ async def read_nullable_non_required_no_embed_int(
|
|||
@app.post("/nullable-non-required-list")
|
||||
async def read_nullable_non_required_no_embed_list(
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Body(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
|
|
@ -746,17 +746,17 @@ def test_nullable_non_required_no_embed_pass_value(path: str, value: Any):
|
|||
async def read_nullable_with_non_null_default(
|
||||
*,
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
Body(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = -1,
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
Body(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = "default",
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Body(default_factory=lambda: [0]),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
|
|
@ -770,9 +770,9 @@ async def read_nullable_with_non_null_default(
|
|||
|
||||
|
||||
class ModelNullableWithNonNullDefault(BaseModel):
|
||||
int_val: Union[int, None] = -1
|
||||
str_val: Union[str, None] = "default"
|
||||
list_val: Union[list[int], None] = [0]
|
||||
int_val: int | None = -1
|
||||
str_val: str | None = "default"
|
||||
list_val: list[int] | None = [0]
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
def validate_all(cls, v):
|
||||
|
|
@ -794,7 +794,7 @@ async def read_model_nullable_with_non_null_default(
|
|||
@app.post("/nullable-with-non-null-default-str")
|
||||
async def read_nullable_with_non_null_default_no_embed_str(
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
Body(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = "default",
|
||||
|
|
@ -805,7 +805,7 @@ async def read_nullable_with_non_null_default_no_embed_str(
|
|||
@app.post("/nullable-with-non-null-default-int")
|
||||
async def read_nullable_with_non_null_default_no_embed_int(
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
Body(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = -1,
|
||||
|
|
@ -816,7 +816,7 @@ async def read_nullable_with_non_null_default_no_embed_int(
|
|||
@app.post("/nullable-with-non-null-default-list")
|
||||
async def read_nullable_with_non_null_default_no_embed_list(
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Body(default_factory=lambda: [0]),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from typing import Annotated, Any, Union
|
||||
from typing import Annotated, Any
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
import pytest
|
||||
|
|
@ -21,12 +21,12 @@ def convert(v: Any) -> Any:
|
|||
@app.get("/nullable-required")
|
||||
async def read_nullable_required(
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
Cookie(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
Cookie(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
|
|
@ -39,8 +39,8 @@ async def read_nullable_required(
|
|||
|
||||
|
||||
class ModelNullableRequired(BaseModel):
|
||||
int_val: Union[int, None]
|
||||
str_val: Union[str, None]
|
||||
int_val: int | None
|
||||
str_val: str | None
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
@classmethod
|
||||
|
|
@ -160,12 +160,12 @@ def test_nullable_required_pass_value(path: str, values: dict[str, str]):
|
|||
@app.get("/nullable-non-required")
|
||||
async def read_nullable_non_required(
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
Cookie(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
Cookie(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
|
|
@ -178,8 +178,8 @@ async def read_nullable_non_required(
|
|||
|
||||
|
||||
class ModelNullableNonRequired(BaseModel):
|
||||
int_val: Union[int, None] = None
|
||||
str_val: Union[str, None] = None
|
||||
int_val: int | None = None
|
||||
str_val: str | None = None
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
@classmethod
|
||||
|
|
@ -293,12 +293,12 @@ def test_nullable_non_required_pass_value(path: str, values: dict[str, str]):
|
|||
async def read_nullable_with_non_null_default(
|
||||
*,
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
Cookie(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = -1,
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
Cookie(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = "default",
|
||||
|
|
@ -311,8 +311,8 @@ async def read_nullable_with_non_null_default(
|
|||
|
||||
|
||||
class ModelNullableWithNonNullDefault(BaseModel):
|
||||
int_val: Union[int, None] = -1
|
||||
str_val: Union[str, None] = "default"
|
||||
int_val: int | None = -1
|
||||
str_val: str | None = "default"
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
@classmethod
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from typing import Annotated, Any, Union
|
||||
from typing import Annotated, Any
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
import pytest
|
||||
|
|
@ -24,12 +24,12 @@ def convert(v: Any) -> Any:
|
|||
@app.post("/nullable-required-bytes")
|
||||
async def read_nullable_required_bytes(
|
||||
file: Annotated[
|
||||
Union[bytes, None],
|
||||
bytes | None,
|
||||
File(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
files: Annotated[
|
||||
Union[list[bytes], None],
|
||||
list[bytes] | None,
|
||||
File(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
|
|
@ -43,12 +43,12 @@ async def read_nullable_required_bytes(
|
|||
@app.post("/nullable-required-uploadfile")
|
||||
async def read_nullable_required_uploadfile(
|
||||
file: Annotated[
|
||||
Union[UploadFile, None],
|
||||
UploadFile | None,
|
||||
File(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
files: Annotated[
|
||||
Union[list[UploadFile], None],
|
||||
list[UploadFile] | None,
|
||||
File(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
|
|
@ -196,12 +196,12 @@ def test_nullable_required_pass_file(path: str):
|
|||
@app.post("/nullable-non-required-bytes")
|
||||
async def read_nullable_non_required_bytes(
|
||||
file: Annotated[
|
||||
Union[bytes, None],
|
||||
bytes | None,
|
||||
File(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
files: Annotated[
|
||||
Union[list[bytes], None],
|
||||
list[bytes] | None,
|
||||
File(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
|
|
@ -215,12 +215,12 @@ async def read_nullable_non_required_bytes(
|
|||
@app.post("/nullable-non-required-uploadfile")
|
||||
async def read_nullable_non_required_uploadfile(
|
||||
file: Annotated[
|
||||
Union[UploadFile, None],
|
||||
UploadFile | None,
|
||||
File(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
files: Annotated[
|
||||
Union[list[UploadFile], None],
|
||||
list[UploadFile] | None,
|
||||
File(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
|
|
@ -351,12 +351,12 @@ def test_nullable_non_required_pass_file(path: str):
|
|||
async def read_nullable_with_non_null_default_bytes(
|
||||
*,
|
||||
file: Annotated[
|
||||
Union[bytes, None],
|
||||
bytes | None,
|
||||
File(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = b"default",
|
||||
files: Annotated[
|
||||
Union[list[bytes], None],
|
||||
list[bytes] | None,
|
||||
File(default_factory=lambda: [b"default"]),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from typing import Annotated, Any, Union
|
||||
from typing import Annotated, Any
|
||||
from unittest.mock import Mock, call, patch
|
||||
|
||||
import pytest
|
||||
|
|
@ -23,17 +23,17 @@ def convert(v: Any) -> Any:
|
|||
@app.post("/nullable-required")
|
||||
async def read_nullable_required(
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
Form(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
Form(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Form(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
|
|
@ -47,9 +47,9 @@ async def read_nullable_required(
|
|||
|
||||
|
||||
class ModelNullableRequired(BaseModel):
|
||||
int_val: Union[int, None]
|
||||
str_val: Union[str, None]
|
||||
list_val: Union[list[int], None]
|
||||
int_val: int | None
|
||||
str_val: str | None
|
||||
list_val: list[int] | None
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
def convert_fields(cls, v):
|
||||
|
|
@ -270,17 +270,17 @@ def test_nullable_required_pass_value(path: str):
|
|||
@app.post("/nullable-non-required")
|
||||
async def read_nullable_non_required(
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
Form(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
Form(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Form(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
|
|
@ -294,9 +294,9 @@ async def read_nullable_non_required(
|
|||
|
||||
|
||||
class ModelNullableNonRequired(BaseModel):
|
||||
int_val: Union[int, None] = None
|
||||
str_val: Union[str, None] = None
|
||||
list_val: Union[list[int], None] = None
|
||||
int_val: int | None = None
|
||||
str_val: str | None = None
|
||||
list_val: list[int] | None = None
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
def convert_fields(cls, v):
|
||||
|
|
@ -492,17 +492,17 @@ def test_nullable_non_required_pass_value(path: str):
|
|||
async def read_nullable_with_non_null_default(
|
||||
*,
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
Form(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = -1,
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
Form(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = "default",
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Form(default_factory=lambda: [0]),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
|
|
@ -516,9 +516,9 @@ async def read_nullable_with_non_null_default(
|
|||
|
||||
|
||||
class ModelNullableWithNonNullDefault(BaseModel):
|
||||
int_val: Union[int, None] = -1
|
||||
str_val: Union[str, None] = "default"
|
||||
list_val: Union[list[int], None] = [0]
|
||||
int_val: int | None = -1
|
||||
str_val: str | None = "default"
|
||||
list_val: list[int] | None = [0]
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
def convert_fields(cls, v):
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from typing import Annotated, Any, Union
|
||||
from typing import Annotated, Any
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
import pytest
|
||||
|
|
@ -21,17 +21,17 @@ def convert(v: Any) -> Any:
|
|||
@app.get("/nullable-required")
|
||||
async def read_nullable_required(
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
Header(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
Header(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Header(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
|
|
@ -45,9 +45,9 @@ async def read_nullable_required(
|
|||
|
||||
|
||||
class ModelNullableRequired(BaseModel):
|
||||
int_val: Union[int, None]
|
||||
str_val: Union[str, None]
|
||||
list_val: Union[list[int], None]
|
||||
int_val: int | None
|
||||
str_val: str | None
|
||||
list_val: list[int] | None
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
@classmethod
|
||||
|
|
@ -234,17 +234,17 @@ def test_nullable_required_pass_empty_str_to_str_val(path: str):
|
|||
@app.get("/nullable-non-required")
|
||||
async def read_nullable_non_required(
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
Header(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
Header(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Header(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
|
|
@ -258,9 +258,9 @@ async def read_nullable_non_required(
|
|||
|
||||
|
||||
class ModelNullableNonRequired(BaseModel):
|
||||
int_val: Union[int, None] = None
|
||||
str_val: Union[str, None] = None
|
||||
list_val: Union[list[int], None] = None
|
||||
int_val: int | None = None
|
||||
str_val: str | None = None
|
||||
list_val: list[int] | None = None
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
@classmethod
|
||||
|
|
@ -428,17 +428,17 @@ def test_nullable_non_required_pass_empty_str_to_str_val(path: str):
|
|||
async def read_nullable_with_non_null_default(
|
||||
*,
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
Header(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = -1,
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
Header(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = "default",
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Header(default_factory=lambda: [0]),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
|
|
@ -452,9 +452,9 @@ async def read_nullable_with_non_null_default(
|
|||
|
||||
|
||||
class ModelNullableWithNonNullDefault(BaseModel):
|
||||
int_val: Union[int, None] = -1
|
||||
str_val: Union[str, None] = "default"
|
||||
list_val: Union[list[int], None] = [0]
|
||||
int_val: int | None = -1
|
||||
str_val: str | None = "default"
|
||||
list_val: list[int] | None = [0]
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
@classmethod
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from typing import Annotated, Any, Union
|
||||
from typing import Annotated, Any
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
import pytest
|
||||
|
|
@ -21,15 +21,15 @@ def convert(v: Any) -> Any:
|
|||
@app.get("/nullable-required")
|
||||
async def read_nullable_required(
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Query(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
|
|
@ -43,9 +43,9 @@ async def read_nullable_required(
|
|||
|
||||
|
||||
class ModelNullableRequired(BaseModel):
|
||||
int_val: Union[int, None]
|
||||
str_val: Union[str, None]
|
||||
list_val: Union[list[int], None]
|
||||
int_val: int | None
|
||||
str_val: str | None
|
||||
list_val: list[int] | None
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
@classmethod
|
||||
|
|
@ -187,15 +187,15 @@ def test_nullable_required_pass_value(path: str, values: dict[str, Any]):
|
|||
@app.get("/nullable-non-required")
|
||||
async def read_nullable_non_required(
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Query(),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = None,
|
||||
|
|
@ -209,9 +209,9 @@ async def read_nullable_non_required(
|
|||
|
||||
|
||||
class ModelNullableNonRequired(BaseModel):
|
||||
int_val: Union[int, None] = None
|
||||
str_val: Union[str, None] = None
|
||||
list_val: Union[list[int], None] = None
|
||||
int_val: int | None = None
|
||||
str_val: str | None = None
|
||||
list_val: list[int] | None = None
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
@classmethod
|
||||
|
|
@ -341,15 +341,15 @@ def test_nullable_non_required_pass_value(path: str, values: dict[str, Any]):
|
|||
async def read_nullable_with_non_null_default(
|
||||
*,
|
||||
int_val: Annotated[
|
||||
Union[int, None],
|
||||
int | None,
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = -1,
|
||||
str_val: Annotated[
|
||||
Union[str, None],
|
||||
str | None,
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
] = "default",
|
||||
list_val: Annotated[
|
||||
Union[list[int], None],
|
||||
list[int] | None,
|
||||
Query(default_factory=lambda: [0]),
|
||||
BeforeValidator(lambda v: convert(v)),
|
||||
],
|
||||
|
|
@ -363,9 +363,9 @@ async def read_nullable_with_non_null_default(
|
|||
|
||||
|
||||
class ModelNullableWithNonNullDefault(BaseModel):
|
||||
int_val: Union[int, None] = -1
|
||||
str_val: Union[str, None] = "default"
|
||||
list_val: Union[list[int], None] = [0]
|
||||
int_val: int | None = -1
|
||||
str_val: str | None = "default"
|
||||
list_val: list[int] | None = [0]
|
||||
|
||||
@field_validator("*", mode="before")
|
||||
@classmethod
|
||||
|
|
|
|||
Loading…
Reference in New Issue