forked from loafle/openapi-generator-original
python-pydantic-v1: Keep trailing commas for enum validation tuples (#19985)
* python-pydantic-v1: Keep trailing commas for tuples when enum has just single member * Update samples * Add test for single member enums * Refactor test name
This commit is contained in:
@@ -12,6 +12,8 @@ Name | Type | Description | Notes
|
||||
**enum_number** | **float** | | [optional]
|
||||
**enum_number_vendor_ext** | **int** | | [optional]
|
||||
**enum_string_vendor_ext** | **str** | | [optional]
|
||||
**enum_string_single_member** | **str** | | [optional]
|
||||
**enum_integer_single_member** | **int** | | [optional]
|
||||
**outer_enum** | [**OuterEnum**](OuterEnum.md) | | [optional]
|
||||
**outer_enum_integer** | [**OuterEnumInteger**](OuterEnumInteger.md) | | [optional]
|
||||
**outer_enum_default_value** | [**OuterEnumDefaultValue**](OuterEnumDefaultValue.md) | | [optional] [default to OuterEnumDefaultValue.PLACED]
|
||||
|
||||
@@ -37,12 +37,14 @@ class EnumTest(BaseModel):
|
||||
enum_number: Optional[StrictFloat] = None
|
||||
enum_number_vendor_ext: Optional[StrictInt] = None
|
||||
enum_string_vendor_ext: Optional[StrictStr] = None
|
||||
enum_string_single_member: Optional[StrictStr] = None
|
||||
enum_integer_single_member: Optional[StrictInt] = None
|
||||
outer_enum: Optional[OuterEnum] = Field(default=None, alias="outerEnum")
|
||||
outer_enum_integer: Optional[OuterEnumInteger] = Field(default=None, alias="outerEnumInteger")
|
||||
outer_enum_default_value: Optional[OuterEnumDefaultValue] = Field(default=OuterEnumDefaultValue.PLACED, alias="outerEnumDefaultValue")
|
||||
outer_enum_integer_default_value: Optional[OuterEnumIntegerDefaultValue] = Field(default=OuterEnumIntegerDefaultValue.NUMBER_0, alias="outerEnumIntegerDefaultValue")
|
||||
additional_properties: Dict[str, Any] = {}
|
||||
__properties: ClassVar[List[str]] = ["enum_string", "enum_string_required", "enum_integer_default", "enum_integer", "enum_number", "enum_number_vendor_ext", "enum_string_vendor_ext", "outerEnum", "outerEnumInteger", "outerEnumDefaultValue", "outerEnumIntegerDefaultValue"]
|
||||
__properties: ClassVar[List[str]] = ["enum_string", "enum_string_required", "enum_integer_default", "enum_integer", "enum_number", "enum_number_vendor_ext", "enum_string_vendor_ext", "enum_string_single_member", "enum_integer_single_member", "outerEnum", "outerEnumInteger", "outerEnumDefaultValue", "outerEnumIntegerDefaultValue"]
|
||||
|
||||
@field_validator('enum_string')
|
||||
def enum_string_validate_enum(cls, value):
|
||||
@@ -111,6 +113,26 @@ class EnumTest(BaseModel):
|
||||
raise ValueError("must be one of enum values ('FOO', 'Bar', 'baz')")
|
||||
return value
|
||||
|
||||
@field_validator('enum_string_single_member')
|
||||
def enum_string_single_member_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in set(['abc']):
|
||||
raise ValueError("must be one of enum values ('abc')")
|
||||
return value
|
||||
|
||||
@field_validator('enum_integer_single_member')
|
||||
def enum_integer_single_member_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in set([100]):
|
||||
raise ValueError("must be one of enum values (100)")
|
||||
return value
|
||||
|
||||
model_config = ConfigDict(
|
||||
populate_by_name=True,
|
||||
validate_assignment=True,
|
||||
@@ -181,6 +203,8 @@ class EnumTest(BaseModel):
|
||||
"enum_number": obj.get("enum_number"),
|
||||
"enum_number_vendor_ext": obj.get("enum_number_vendor_ext"),
|
||||
"enum_string_vendor_ext": obj.get("enum_string_vendor_ext"),
|
||||
"enum_string_single_member": obj.get("enum_string_single_member"),
|
||||
"enum_integer_single_member": obj.get("enum_integer_single_member"),
|
||||
"outerEnum": obj.get("outerEnum"),
|
||||
"outerEnumInteger": obj.get("outerEnumInteger"),
|
||||
"outerEnumDefaultValue": obj.get("outerEnumDefaultValue") if obj.get("outerEnumDefaultValue") is not None else OuterEnumDefaultValue.PLACED,
|
||||
|
||||
Reference in New Issue
Block a user