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:
parent
66c7b2f8cc
commit
67af02ccc8
@ -69,11 +69,11 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
||||
{{/required}}
|
||||
{{#isArray}}
|
||||
for i in value:
|
||||
if i not in ({{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}}):
|
||||
if i not in ({{#allowableValues}}{{#enumVars}}{{{value}}},{{^-last}} {{/-last}}{{/enumVars}}{{/allowableValues}}):
|
||||
raise ValueError("each list item must be one of ({{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}})")
|
||||
{{/isArray}}
|
||||
{{^isArray}}
|
||||
if value not in ({{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}}):
|
||||
if value not in ({{#allowableValues}}{{#enumVars}}{{{value}}},{{^-last}} {{/-last}}{{/enumVars}}{{/allowableValues}}):
|
||||
raise ValueError("must be one of enum values ({{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}})")
|
||||
{{/isArray}}
|
||||
return value
|
||||
|
@ -74,11 +74,11 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
|
||||
{{/required}}
|
||||
{{#isArray}}
|
||||
for i in value:
|
||||
if i not in ({{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}}):
|
||||
if i not in ({{#allowableValues}}{{#enumVars}}{{{value}}},{{^-last}} {{/-last}}{{/enumVars}}{{/allowableValues}}):
|
||||
raise ValueError("each list item must be one of ({{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}})")
|
||||
{{/isArray}}
|
||||
{{^isArray}}
|
||||
if value not in ({{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}}):
|
||||
if value not in ({{#allowableValues}}{{#enumVars}}{{{value}}},{{^-last}} {{/-last}}{{/enumVars}}{{/allowableValues}}):
|
||||
raise ValueError("must be one of enum values ({{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}})")
|
||||
{{/isArray}}
|
||||
return value
|
||||
|
@ -2124,6 +2124,15 @@ components:
|
||||
- FOOVar
|
||||
- BarVar
|
||||
- bazVar
|
||||
enum_string_single_member:
|
||||
type: string
|
||||
enum:
|
||||
- 'abc'
|
||||
enum_integer_single_member:
|
||||
type: integer
|
||||
format: int32
|
||||
enum:
|
||||
- 100
|
||||
outerEnum:
|
||||
$ref: '#/components/schemas/OuterEnum'
|
||||
outerEnumInteger:
|
||||
|
@ -44,7 +44,7 @@ class DefaultValue(BaseModel):
|
||||
return value
|
||||
|
||||
for i in value:
|
||||
if i not in ('success', 'failure', 'unclassified'):
|
||||
if i not in ('success', 'failure', 'unclassified',):
|
||||
raise ValueError("each list item must be one of ('success', 'failure', 'unclassified')")
|
||||
return value
|
||||
|
||||
|
@ -42,7 +42,7 @@ class Pet(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('available', 'pending', 'sold'):
|
||||
if value not in ('available', 'pending', 'sold',):
|
||||
raise ValueError("must be one of enum values ('available', 'pending', 'sold')")
|
||||
return value
|
||||
|
||||
|
@ -37,7 +37,7 @@ class Query(BaseModel):
|
||||
return value
|
||||
|
||||
for i in value:
|
||||
if i not in ('SUCCESS', 'FAILURE', 'SKIPPED'):
|
||||
if i not in ('SUCCESS', 'FAILURE', 'SKIPPED',):
|
||||
raise ValueError("each list item must be one of ('SUCCESS', 'FAILURE', 'SKIPPED')")
|
||||
return value
|
||||
|
||||
|
@ -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,11 +37,13 @@ class EnumTest(BaseModel):
|
||||
enum_number: Optional[float] = 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")
|
||||
__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):
|
||||
@ -110,6 +112,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,
|
||||
@ -173,6 +195,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,
|
||||
|
@ -11,6 +11,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]
|
||||
|
@ -33,14 +33,14 @@ class Bathing(BaseModel):
|
||||
@validator('task_name')
|
||||
def task_name_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('cleaning_deep'):
|
||||
if value not in ('cleaning_deep',):
|
||||
raise ValueError("must be one of enum values ('cleaning_deep')")
|
||||
return value
|
||||
|
||||
@validator('function_name')
|
||||
def function_name_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('care_nourish'):
|
||||
if value not in ('care_nourish',):
|
||||
raise ValueError("must be one of enum values ('care_nourish')")
|
||||
return value
|
||||
|
||||
|
@ -35,7 +35,7 @@ class EnumArrays(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('>=', '$'):
|
||||
if value not in ('>=', '$',):
|
||||
raise ValueError("must be one of enum values ('>=', '$')")
|
||||
return value
|
||||
|
||||
@ -46,7 +46,7 @@ class EnumArrays(BaseModel):
|
||||
return value
|
||||
|
||||
for i in value:
|
||||
if i not in ('fish', 'crab'):
|
||||
if i not in ('fish', 'crab',):
|
||||
raise ValueError("each list item must be one of ('fish', 'crab')")
|
||||
return value
|
||||
|
||||
|
@ -36,11 +36,13 @@ class EnumTest(BaseModel):
|
||||
enum_number: Optional[float] = 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=None, alias="outerEnumDefaultValue")
|
||||
outer_enum_integer_default_value: Optional[OuterEnumIntegerDefaultValue] = Field(default=None, alias="outerEnumIntegerDefaultValue")
|
||||
__properties = ["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 = ["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"]
|
||||
|
||||
@validator('enum_string')
|
||||
def enum_string_validate_enum(cls, value):
|
||||
@ -48,14 +50,14 @@ class EnumTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('UPPER', 'lower', ''):
|
||||
if value not in ('UPPER', 'lower', '',):
|
||||
raise ValueError("must be one of enum values ('UPPER', 'lower', '')")
|
||||
return value
|
||||
|
||||
@validator('enum_string_required')
|
||||
def enum_string_required_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('UPPER', 'lower', ''):
|
||||
if value not in ('UPPER', 'lower', '',):
|
||||
raise ValueError("must be one of enum values ('UPPER', 'lower', '')")
|
||||
return value
|
||||
|
||||
@ -65,7 +67,7 @@ class EnumTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in (1, 5, 14):
|
||||
if value not in (1, 5, 14,):
|
||||
raise ValueError("must be one of enum values (1, 5, 14)")
|
||||
return value
|
||||
|
||||
@ -75,7 +77,7 @@ class EnumTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in (1, -1):
|
||||
if value not in (1, -1,):
|
||||
raise ValueError("must be one of enum values (1, -1)")
|
||||
return value
|
||||
|
||||
@ -85,7 +87,7 @@ class EnumTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in (1.1, -1.2):
|
||||
if value not in (1.1, -1.2,):
|
||||
raise ValueError("must be one of enum values (1.1, -1.2)")
|
||||
return value
|
||||
|
||||
@ -95,7 +97,7 @@ class EnumTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in (42, 18, 56):
|
||||
if value not in (42, 18, 56,):
|
||||
raise ValueError("must be one of enum values (42, 18, 56)")
|
||||
return value
|
||||
|
||||
@ -105,10 +107,30 @@ class EnumTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('FOO', 'Bar', 'baz'):
|
||||
if value not in ('FOO', 'Bar', 'baz',):
|
||||
raise ValueError("must be one of enum values ('FOO', 'Bar', 'baz')")
|
||||
return value
|
||||
|
||||
@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 ('abc',):
|
||||
raise ValueError("must be one of enum values ('abc')")
|
||||
return value
|
||||
|
||||
@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 (100,):
|
||||
raise ValueError("must be one of enum values (100)")
|
||||
return value
|
||||
|
||||
class Config:
|
||||
"""Pydantic configuration"""
|
||||
allow_population_by_field_name = True
|
||||
@ -157,6 +179,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"),
|
||||
"outer_enum": obj.get("outerEnum"),
|
||||
"outer_enum_integer": obj.get("outerEnumInteger"),
|
||||
"outer_enum_default_value": obj.get("outerEnumDefaultValue"),
|
||||
|
@ -33,14 +33,14 @@ class Feeding(BaseModel):
|
||||
@validator('task_name')
|
||||
def task_name_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('cleaning'):
|
||||
if value not in ('cleaning',):
|
||||
raise ValueError("must be one of enum values ('cleaning')")
|
||||
return value
|
||||
|
||||
@validator('function_name')
|
||||
def function_name_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('care_nourish'):
|
||||
if value not in ('care_nourish',):
|
||||
raise ValueError("must be one of enum values ('care_nourish')")
|
||||
return value
|
||||
|
||||
|
@ -37,7 +37,7 @@ class MapTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('UPPER', 'lower'):
|
||||
if value not in ('UPPER', 'lower',):
|
||||
raise ValueError("must be one of enum values ('UPPER', 'lower')")
|
||||
return value
|
||||
|
||||
|
@ -39,7 +39,7 @@ class Order(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('placed', 'approved', 'delivered'):
|
||||
if value not in ('placed', 'approved', 'delivered',):
|
||||
raise ValueError("must be one of enum values ('placed', 'approved', 'delivered')")
|
||||
return value
|
||||
|
||||
|
@ -41,7 +41,7 @@ class Pet(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('available', 'pending', 'sold'):
|
||||
if value not in ('available', 'pending', 'sold',):
|
||||
raise ValueError("must be one of enum values ('available', 'pending', 'sold')")
|
||||
return value
|
||||
|
||||
|
@ -33,14 +33,14 @@ class PoopCleaning(BaseModel):
|
||||
@validator('task_name')
|
||||
def task_name_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('cleaning'):
|
||||
if value not in ('cleaning',):
|
||||
raise ValueError("must be one of enum values ('cleaning')")
|
||||
return value
|
||||
|
||||
@validator('function_name')
|
||||
def function_name_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('care'):
|
||||
if value not in ('care',):
|
||||
raise ValueError("must be one of enum values ('care')")
|
||||
return value
|
||||
|
||||
|
@ -37,7 +37,7 @@ class SpecialName(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('available', 'pending', 'sold'):
|
||||
if value not in ('available', 'pending', 'sold',):
|
||||
raise ValueError("must be one of enum values ('available', 'pending', 'sold')")
|
||||
return value
|
||||
|
||||
|
@ -40,7 +40,7 @@ class TestModelWithEnumDefault(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('A', 'B', 'C'):
|
||||
if value not in ('A', 'B', 'C',):
|
||||
raise ValueError("must be one of enum values ('A', 'B', 'C')")
|
||||
return value
|
||||
|
||||
|
@ -11,6 +11,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]
|
||||
|
@ -34,14 +34,14 @@ class Bathing(BaseModel):
|
||||
@validator('task_name')
|
||||
def task_name_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('cleaning_deep'):
|
||||
if value not in ('cleaning_deep',):
|
||||
raise ValueError("must be one of enum values ('cleaning_deep')")
|
||||
return value
|
||||
|
||||
@validator('function_name')
|
||||
def function_name_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('care_nourish'):
|
||||
if value not in ('care_nourish',):
|
||||
raise ValueError("must be one of enum values ('care_nourish')")
|
||||
return value
|
||||
|
||||
|
@ -36,7 +36,7 @@ class EnumArrays(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('>=', '$'):
|
||||
if value not in ('>=', '$',):
|
||||
raise ValueError("must be one of enum values ('>=', '$')")
|
||||
return value
|
||||
|
||||
@ -47,7 +47,7 @@ class EnumArrays(BaseModel):
|
||||
return value
|
||||
|
||||
for i in value:
|
||||
if i not in ('fish', 'crab'):
|
||||
if i not in ('fish', 'crab',):
|
||||
raise ValueError("each list item must be one of ('fish', 'crab')")
|
||||
return value
|
||||
|
||||
|
@ -36,12 +36,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=None, alias="outerEnumDefaultValue")
|
||||
outer_enum_integer_default_value: Optional[OuterEnumIntegerDefaultValue] = Field(default=None, alias="outerEnumIntegerDefaultValue")
|
||||
additional_properties: Dict[str, Any] = {}
|
||||
__properties = ["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 = ["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"]
|
||||
|
||||
@validator('enum_string')
|
||||
def enum_string_validate_enum(cls, value):
|
||||
@ -49,14 +51,14 @@ class EnumTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('UPPER', 'lower', ''):
|
||||
if value not in ('UPPER', 'lower', '',):
|
||||
raise ValueError("must be one of enum values ('UPPER', 'lower', '')")
|
||||
return value
|
||||
|
||||
@validator('enum_string_required')
|
||||
def enum_string_required_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('UPPER', 'lower', ''):
|
||||
if value not in ('UPPER', 'lower', '',):
|
||||
raise ValueError("must be one of enum values ('UPPER', 'lower', '')")
|
||||
return value
|
||||
|
||||
@ -66,7 +68,7 @@ class EnumTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in (1, 5, 14):
|
||||
if value not in (1, 5, 14,):
|
||||
raise ValueError("must be one of enum values (1, 5, 14)")
|
||||
return value
|
||||
|
||||
@ -76,7 +78,7 @@ class EnumTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in (1, -1):
|
||||
if value not in (1, -1,):
|
||||
raise ValueError("must be one of enum values (1, -1)")
|
||||
return value
|
||||
|
||||
@ -86,7 +88,7 @@ class EnumTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in (1.1, -1.2):
|
||||
if value not in (1.1, -1.2,):
|
||||
raise ValueError("must be one of enum values (1.1, -1.2)")
|
||||
return value
|
||||
|
||||
@ -96,7 +98,7 @@ class EnumTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in (42, 18, 56):
|
||||
if value not in (42, 18, 56,):
|
||||
raise ValueError("must be one of enum values (42, 18, 56)")
|
||||
return value
|
||||
|
||||
@ -106,10 +108,30 @@ class EnumTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('FOO', 'Bar', 'baz'):
|
||||
if value not in ('FOO', 'Bar', 'baz',):
|
||||
raise ValueError("must be one of enum values ('FOO', 'Bar', 'baz')")
|
||||
return value
|
||||
|
||||
@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 ('abc',):
|
||||
raise ValueError("must be one of enum values ('abc')")
|
||||
return value
|
||||
|
||||
@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 (100,):
|
||||
raise ValueError("must be one of enum values (100)")
|
||||
return value
|
||||
|
||||
class Config:
|
||||
"""Pydantic configuration"""
|
||||
allow_population_by_field_name = True
|
||||
@ -164,6 +186,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"),
|
||||
"outer_enum": obj.get("outerEnum"),
|
||||
"outer_enum_integer": obj.get("outerEnumInteger"),
|
||||
"outer_enum_default_value": obj.get("outerEnumDefaultValue"),
|
||||
|
@ -34,14 +34,14 @@ class Feeding(BaseModel):
|
||||
@validator('task_name')
|
||||
def task_name_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('cleaning'):
|
||||
if value not in ('cleaning',):
|
||||
raise ValueError("must be one of enum values ('cleaning')")
|
||||
return value
|
||||
|
||||
@validator('function_name')
|
||||
def function_name_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('care_nourish'):
|
||||
if value not in ('care_nourish',):
|
||||
raise ValueError("must be one of enum values ('care_nourish')")
|
||||
return value
|
||||
|
||||
|
@ -38,7 +38,7 @@ class MapTest(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('UPPER', 'lower'):
|
||||
if value not in ('UPPER', 'lower',):
|
||||
raise ValueError("must be one of enum values ('UPPER', 'lower')")
|
||||
return value
|
||||
|
||||
|
@ -40,7 +40,7 @@ class Order(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('placed', 'approved', 'delivered'):
|
||||
if value not in ('placed', 'approved', 'delivered',):
|
||||
raise ValueError("must be one of enum values ('placed', 'approved', 'delivered')")
|
||||
return value
|
||||
|
||||
|
@ -42,7 +42,7 @@ class Pet(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('available', 'pending', 'sold'):
|
||||
if value not in ('available', 'pending', 'sold',):
|
||||
raise ValueError("must be one of enum values ('available', 'pending', 'sold')")
|
||||
return value
|
||||
|
||||
|
@ -34,14 +34,14 @@ class PoopCleaning(BaseModel):
|
||||
@validator('task_name')
|
||||
def task_name_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('cleaning'):
|
||||
if value not in ('cleaning',):
|
||||
raise ValueError("must be one of enum values ('cleaning')")
|
||||
return value
|
||||
|
||||
@validator('function_name')
|
||||
def function_name_validate_enum(cls, value):
|
||||
"""Validates the enum"""
|
||||
if value not in ('care'):
|
||||
if value not in ('care',):
|
||||
raise ValueError("must be one of enum values ('care')")
|
||||
return value
|
||||
|
||||
|
@ -38,7 +38,7 @@ class SpecialName(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('available', 'pending', 'sold'):
|
||||
if value not in ('available', 'pending', 'sold',):
|
||||
raise ValueError("must be one of enum values ('available', 'pending', 'sold')")
|
||||
return value
|
||||
|
||||
|
@ -41,7 +41,7 @@ class TestModelWithEnumDefault(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('A', 'B', 'C'):
|
||||
if value not in ('A', 'B', 'C',):
|
||||
raise ValueError("must be one of enum values ('A', 'B', 'C')")
|
||||
return value
|
||||
|
||||
|
@ -378,6 +378,28 @@ class ModelTests(unittest.TestCase):
|
||||
self.assertEqual(d5.__fields_set__, {'value', 'str_value'})
|
||||
self.assertEqual(d5.to_json(), '{"value": 1, "str_value": null}')
|
||||
|
||||
def test_enum_single_members(self):
|
||||
enum_test = petstore_api.EnumTest(
|
||||
enum_string_required="lower",
|
||||
enum_string_single_member="abc",
|
||||
enum_integer_single_member=100,
|
||||
)
|
||||
self.assertEqual(enum_test.enum_string_single_member, "abc")
|
||||
self.assertEqual(enum_test.enum_integer_single_member, 100)
|
||||
with self.assertRaises(ValueError) as e:
|
||||
enum_test = petstore_api.EnumTest(
|
||||
enum_string_required="lower",
|
||||
enum_string_single_member="ab",
|
||||
)
|
||||
self.assertTrue("must be one of enum values ('abc')" in str(e))
|
||||
|
||||
with self.assertRaises(ValueError) as e:
|
||||
enum_test = petstore_api.EnumTest(
|
||||
enum_string_required="lower",
|
||||
enum_integer_single_member=10,
|
||||
)
|
||||
self.assertTrue("must be one of enum values (100)" in str(e))
|
||||
|
||||
def test_valdiator(self):
|
||||
# test regular expression
|
||||
a = petstore_api.FormatTest(number=123.45, byte=bytes("string", 'utf-8'), date="2013-09-17", password="testing09876")
|
||||
@ -414,7 +436,6 @@ class ModelTests(unittest.TestCase):
|
||||
pet_ap4 = petstore_api.Pet.from_dict(pet_ap.to_dict())
|
||||
self.assertNotEqual(id(pet_ap3), id(pet_ap4))
|
||||
|
||||
|
||||
def test_additional_properties(self):
|
||||
pet_ap = petstore_api.Pet(name="test name", photo_urls=["string"])
|
||||
pet_ap.id = 1
|
||||
|
@ -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,
|
||||
|
@ -46,7 +46,7 @@ class Order(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('placed', 'approved', 'delivered'):
|
||||
if value not in ('placed', 'approved', 'delivered',):
|
||||
raise ValueError("must be one of enum values ('placed', 'approved', 'delivered')")
|
||||
return value
|
||||
|
||||
|
@ -47,7 +47,7 @@ class Pet(BaseModel):
|
||||
if value is None:
|
||||
return value
|
||||
|
||||
if value not in ('available', 'pending', 'sold'):
|
||||
if value not in ('available', 'pending', 'sold',):
|
||||
raise ValueError("must be one of enum values ('available', 'pending', 'sold')")
|
||||
return value
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user