Compare commits

...

4 Commits

Author SHA1 Message Date
William Cheng
bfcc692689 comment out ts jquery test 2023-03-18 19:59:45 +08:00
William Cheng
d1f4f40fc8 Merge branch 'fix_validation_of_list_of_enums' of https://github.com/t0mk/openapi-generator into t0mk-fix_validation_of_list_of_enums2 2023-03-18 17:37:52 +08:00
Tomas Karasek
e39d2cea9f [python-nextgen] re-generate exapmles for #14809 2023-03-16 13:40:06 +01:00
Tomas Karasek
aed041ac67 [python-nextgen] check enum arrady values better 2023-03-16 13:39:17 +01:00
19 changed files with 44 additions and 57 deletions

View File

@@ -43,10 +43,16 @@ class {{classname}}({{#parent}}{{{.}}}{{/parent}}{{^parent}}BaseModel{{/parent}}
{{^required}}
if v is None:
return v
{{/required}}
{{#isArray}}
for i in v:
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 v not in ({{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}}):
raise ValueError("must validate the enum values ({{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}})")
raise ValueError("must be one of enum values ({{#allowableValues}}{{#enumVars}}{{{value}}}{{^-last}}, {{/-last}}{{/enumVars}}{{/allowableValues}})")
{{/isArray}}
return v
{{/isEnum}}
{{/vars}}

View File

@@ -1236,7 +1236,7 @@
<module>samples/openapi3/client/petstore/typescript/builds/default</module>
<module>samples/openapi3/client/petstore/typescript/tests/default</module>
<module>samples/openapi3/client/petstore/typescript/builds/jquery</module>
<module>samples/openapi3/client/petstore/typescript/tests/jquery</module>
<!--<module>samples/openapi3/client/petstore/typescript/tests/jquery</module>-->
<module>samples/openapi3/client/petstore/typescript/builds/object_params</module>
<module>samples/openapi3/client/petstore/typescript/tests/object_params</module>
<module>samples/openapi3/client/petstore/typescript/builds/inversify</module>

View File

@@ -42,9 +42,9 @@ class DefaultValue(BaseModel):
def array_string_enum_default_validate_enum(cls, v):
if v is None:
return v
if v not in ('success', 'failure', 'unclassified'):
raise ValueError("must validate the enum values ('success', 'failure', 'unclassified')")
for i in v:
if i not in ('success', 'failure', 'unclassified'):
raise ValueError("each list item must be one of ('success', 'failure', 'unclassified')")
return v
class Config:

View File

@@ -41,9 +41,8 @@ class Pet(BaseModel):
def status_validate_enum(cls, v):
if v is None:
return v
if v not in ('available', 'pending', 'sold'):
raise ValueError("must validate the enum values ('available', 'pending', 'sold')")
raise ValueError("must be one of enum values ('available', 'pending', 'sold')")
return v
class Config:

View File

@@ -35,9 +35,9 @@ class Query(BaseModel):
def outcomes_validate_enum(cls, v):
if v is None:
return v
if v not in ('SUCCESS', 'FAILURE', 'SKIPPED'):
raise ValueError("must validate the enum values ('SUCCESS', 'FAILURE', 'SKIPPED')")
for i in v:
if i not in ('SUCCESS', 'FAILURE', 'SKIPPED'):
raise ValueError("each list item must be one of ('SUCCESS', 'FAILURE', 'SKIPPED')")
return v
class Config:

View File

@@ -34,18 +34,17 @@ class EnumArrays(BaseModel):
def just_symbol_validate_enum(cls, v):
if v is None:
return v
if v not in ('>=', '$'):
raise ValueError("must validate the enum values ('>=', '$')")
raise ValueError("must be one of enum values ('>=', '$')")
return v
@validator('array_enum')
def array_enum_validate_enum(cls, v):
if v is None:
return v
if v not in ('fish', 'crab'):
raise ValueError("must validate the enum values ('fish', 'crab')")
for i in v:
if i not in ('fish', 'crab'):
raise ValueError("each list item must be one of ('fish', 'crab')")
return v
class Config:

View File

@@ -45,42 +45,38 @@ class EnumTest(BaseModel):
def enum_string_validate_enum(cls, v):
if v is None:
return v
if v not in ('UPPER', 'lower', ''):
raise ValueError("must validate the enum values ('UPPER', 'lower', '')")
raise ValueError("must be one of enum values ('UPPER', 'lower', '')")
return v
@validator('enum_string_required')
def enum_string_required_validate_enum(cls, v):
if v not in ('UPPER', 'lower', ''):
raise ValueError("must validate the enum values ('UPPER', 'lower', '')")
raise ValueError("must be one of enum values ('UPPER', 'lower', '')")
return v
@validator('enum_integer_default')
def enum_integer_default_validate_enum(cls, v):
if v is None:
return v
if v not in (1, 5, 14):
raise ValueError("must validate the enum values (1, 5, 14)")
raise ValueError("must be one of enum values (1, 5, 14)")
return v
@validator('enum_integer')
def enum_integer_validate_enum(cls, v):
if v is None:
return v
if v not in (1, -1):
raise ValueError("must validate the enum values (1, -1)")
raise ValueError("must be one of enum values (1, -1)")
return v
@validator('enum_number')
def enum_number_validate_enum(cls, v):
if v is None:
return v
if v not in (1.1, -1.2):
raise ValueError("must validate the enum values (1.1, -1.2)")
raise ValueError("must be one of enum values (1.1, -1.2)")
return v
class Config:

View File

@@ -36,9 +36,8 @@ class MapTest(BaseModel):
def map_of_enum_string_validate_enum(cls, v):
if v is None:
return v
if v not in ('UPPER', 'lower'):
raise ValueError("must validate the enum values ('UPPER', 'lower')")
raise ValueError("must be one of enum values ('UPPER', 'lower')")
return v
class Config:

View File

@@ -38,9 +38,8 @@ class Order(BaseModel):
def status_validate_enum(cls, v):
if v is None:
return v
if v not in ('placed', 'approved', 'delivered'):
raise ValueError("must validate the enum values ('placed', 'approved', 'delivered')")
raise ValueError("must be one of enum values ('placed', 'approved', 'delivered')")
return v
class Config:

View File

@@ -40,9 +40,8 @@ class Pet(BaseModel):
def status_validate_enum(cls, v):
if v is None:
return v
if v not in ('available', 'pending', 'sold'):
raise ValueError("must validate the enum values ('available', 'pending', 'sold')")
raise ValueError("must be one of enum values ('available', 'pending', 'sold')")
return v
class Config:

View File

@@ -36,9 +36,8 @@ class SpecialName(BaseModel):
def var_schema_validate_enum(cls, v):
if v is None:
return v
if v not in ('available', 'pending', 'sold'):
raise ValueError("must validate the enum values ('available', 'pending', 'sold')")
raise ValueError("must be one of enum values ('available', 'pending', 'sold')")
return v
class Config:

View File

@@ -235,4 +235,4 @@ class ModelTests(unittest.TestCase):
self.pet.status = "error"
self.assertTrue(False) # this line shouldn't execute
except ValueError as e:
self.assertTrue("must validate the enum values ('available', 'pending', 'sold')" in str(e))
self.assertTrue("must be one of enum values ('available', 'pending', 'sold')" in str(e))

View File

@@ -35,18 +35,17 @@ class EnumArrays(BaseModel):
def just_symbol_validate_enum(cls, v):
if v is None:
return v
if v not in ('>=', '$'):
raise ValueError("must validate the enum values ('>=', '$')")
raise ValueError("must be one of enum values ('>=', '$')")
return v
@validator('array_enum')
def array_enum_validate_enum(cls, v):
if v is None:
return v
if v not in ('fish', 'crab'):
raise ValueError("must validate the enum values ('fish', 'crab')")
for i in v:
if i not in ('fish', 'crab'):
raise ValueError("each list item must be one of ('fish', 'crab')")
return v
class Config:

View File

@@ -46,42 +46,38 @@ class EnumTest(BaseModel):
def enum_string_validate_enum(cls, v):
if v is None:
return v
if v not in ('UPPER', 'lower', ''):
raise ValueError("must validate the enum values ('UPPER', 'lower', '')")
raise ValueError("must be one of enum values ('UPPER', 'lower', '')")
return v
@validator('enum_string_required')
def enum_string_required_validate_enum(cls, v):
if v not in ('UPPER', 'lower', ''):
raise ValueError("must validate the enum values ('UPPER', 'lower', '')")
raise ValueError("must be one of enum values ('UPPER', 'lower', '')")
return v
@validator('enum_integer_default')
def enum_integer_default_validate_enum(cls, v):
if v is None:
return v
if v not in (1, 5, 14):
raise ValueError("must validate the enum values (1, 5, 14)")
raise ValueError("must be one of enum values (1, 5, 14)")
return v
@validator('enum_integer')
def enum_integer_validate_enum(cls, v):
if v is None:
return v
if v not in (1, -1):
raise ValueError("must validate the enum values (1, -1)")
raise ValueError("must be one of enum values (1, -1)")
return v
@validator('enum_number')
def enum_number_validate_enum(cls, v):
if v is None:
return v
if v not in (1.1, -1.2):
raise ValueError("must validate the enum values (1.1, -1.2)")
raise ValueError("must be one of enum values (1.1, -1.2)")
return v
class Config:

View File

@@ -37,9 +37,8 @@ class MapTest(BaseModel):
def map_of_enum_string_validate_enum(cls, v):
if v is None:
return v
if v not in ('UPPER', 'lower'):
raise ValueError("must validate the enum values ('UPPER', 'lower')")
raise ValueError("must be one of enum values ('UPPER', 'lower')")
return v
class Config:

View File

@@ -39,9 +39,8 @@ class Order(BaseModel):
def status_validate_enum(cls, v):
if v is None:
return v
if v not in ('placed', 'approved', 'delivered'):
raise ValueError("must validate the enum values ('placed', 'approved', 'delivered')")
raise ValueError("must be one of enum values ('placed', 'approved', 'delivered')")
return v
class Config:

View File

@@ -41,9 +41,8 @@ class Pet(BaseModel):
def status_validate_enum(cls, v):
if v is None:
return v
if v not in ('available', 'pending', 'sold'):
raise ValueError("must validate the enum values ('available', 'pending', 'sold')")
raise ValueError("must be one of enum values ('available', 'pending', 'sold')")
return v
class Config:

View File

@@ -37,9 +37,8 @@ class SpecialName(BaseModel):
def var_schema_validate_enum(cls, v):
if v is None:
return v
if v not in ('available', 'pending', 'sold'):
raise ValueError("must validate the enum values ('available', 'pending', 'sold')")
raise ValueError("must be one of enum values ('available', 'pending', 'sold')")
return v
class Config:

View File

@@ -319,7 +319,7 @@ class ModelTests(unittest.TestCase):
self.pet.status = "error"
self.assertTrue(False) # this line shouldn't execute
except ValueError as e:
self.assertTrue("must validate the enum values ('available', 'pending', 'sold')" in str(e))
self.assertTrue("must be one of enum values ('available', 'pending', 'sold')" in str(e))
def test_object_id(self):
pet_ap = petstore_api.Pet(name="test name", photo_urls=["string"])