forked from loafle/openapi-generator-original
[python-experimental] adds test verifying inheriting from multiple AnyType classes (#13358)
* Adds test_additional_properties_validator * Updates test * Reverts file
This commit is contained in:
parent
2c5eb54f11
commit
c4d56afcae
@ -2905,4 +2905,15 @@ components:
|
||||
type: string
|
||||
enum:
|
||||
- move
|
||||
- copy
|
||||
- copy
|
||||
AdditionalPropertiesValidator:
|
||||
type: object
|
||||
allOf:
|
||||
- type: object
|
||||
additionalProperties: true
|
||||
- type: object
|
||||
additionalProperties:
|
||||
minLength: 3
|
||||
- type: object
|
||||
additionalProperties:
|
||||
maxLength: 5
|
@ -10,6 +10,7 @@ docs/apis/tags/PetApi.md
|
||||
docs/apis/tags/StoreApi.md
|
||||
docs/apis/tags/UserApi.md
|
||||
docs/models/AdditionalPropertiesClass.md
|
||||
docs/models/AdditionalPropertiesValidator.md
|
||||
docs/models/AdditionalPropertiesWithArrayOfEnums.md
|
||||
docs/models/Address.md
|
||||
docs/models/Animal.md
|
||||
@ -140,6 +141,8 @@ petstore_api/exceptions.py
|
||||
petstore_api/model/__init__.py
|
||||
petstore_api/model/additional_properties_class.py
|
||||
petstore_api/model/additional_properties_class.pyi
|
||||
petstore_api/model/additional_properties_validator.py
|
||||
petstore_api/model/additional_properties_validator.pyi
|
||||
petstore_api/model/additional_properties_with_array_of_enums.py
|
||||
petstore_api/model/additional_properties_with_array_of_enums.pyi
|
||||
petstore_api/model/address.py
|
||||
|
@ -223,6 +223,7 @@ Class | Method | HTTP request | Description
|
||||
## Documentation For Models
|
||||
|
||||
- [AdditionalPropertiesClass](docs/models/AdditionalPropertiesClass.md)
|
||||
- [AdditionalPropertiesValidator](docs/models/AdditionalPropertiesValidator.md)
|
||||
- [AdditionalPropertiesWithArrayOfEnums](docs/models/AdditionalPropertiesWithArrayOfEnums.md)
|
||||
- [Address](docs/models/Address.md)
|
||||
- [Animal](docs/models/Animal.md)
|
||||
|
@ -0,0 +1,8 @@
|
||||
# petstore_api.model.additional_properties_validator.AdditionalPropertiesValidator
|
||||
|
||||
Type | Description | Notes
|
||||
------------- | ------------- | -------------
|
||||
**object** | |
|
||||
|
||||
[[Back to Model list]](../../README.md#documentation-for-models) [[Back to API list]](../../README.md#documentation-for-api-endpoints) [[Back to README]](../../README.md)
|
||||
|
@ -0,0 +1,198 @@
|
||||
# coding: utf-8
|
||||
|
||||
"""
|
||||
OpenAPI Petstore
|
||||
|
||||
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ # noqa: E501
|
||||
|
||||
The version of the OpenAPI document: 1.0.0
|
||||
Generated by: https://openapi-generator.tech
|
||||
"""
|
||||
|
||||
from datetime import date, datetime # noqa: F401
|
||||
import decimal # noqa: F401
|
||||
import functools # noqa: F401
|
||||
import io # noqa: F401
|
||||
import re # noqa: F401
|
||||
import typing # noqa: F401
|
||||
import uuid # noqa: F401
|
||||
|
||||
import frozendict # noqa: F401
|
||||
|
||||
from petstore_api import schemas # noqa: F401
|
||||
|
||||
|
||||
class AdditionalPropertiesValidator(
|
||||
schemas.ComposedBase,
|
||||
schemas.DictSchema
|
||||
):
|
||||
"""NOTE: This class is auto generated by OpenAPI Generator.
|
||||
Ref: https://openapi-generator.tech
|
||||
|
||||
Do not edit the class manually.
|
||||
"""
|
||||
|
||||
|
||||
class MetaOapg:
|
||||
|
||||
|
||||
class all_of_0(
|
||||
schemas.DictSchema
|
||||
):
|
||||
|
||||
|
||||
class MetaOapg:
|
||||
additional_properties = schemas.AnyTypeSchema
|
||||
|
||||
def __getitem__(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
|
||||
# dict_instance[name] accessor
|
||||
return super().__getitem__(name)
|
||||
|
||||
def get_item_oapg(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
|
||||
return super().get_item_oapg(name)
|
||||
|
||||
def __new__(
|
||||
cls,
|
||||
*args: typing.Union[dict, frozendict.frozendict, ],
|
||||
_configuration: typing.Optional[schemas.Configuration] = None,
|
||||
**kwargs: typing.Union[MetaOapg.additional_properties, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes, ],
|
||||
) -> 'all_of_0':
|
||||
return super().__new__(
|
||||
cls,
|
||||
*args,
|
||||
_configuration=_configuration,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
|
||||
class all_of_1(
|
||||
schemas.DictSchema
|
||||
):
|
||||
|
||||
|
||||
class MetaOapg:
|
||||
|
||||
|
||||
class additional_properties(
|
||||
schemas.AnyTypeSchema,
|
||||
):
|
||||
|
||||
|
||||
class MetaOapg:
|
||||
min_length = 3
|
||||
|
||||
|
||||
def __new__(
|
||||
cls,
|
||||
*args: typing.Union[dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes, ],
|
||||
_configuration: typing.Optional[schemas.Configuration] = None,
|
||||
**kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
|
||||
) -> 'additional_properties':
|
||||
return super().__new__(
|
||||
cls,
|
||||
*args,
|
||||
_configuration=_configuration,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
def __getitem__(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
|
||||
# dict_instance[name] accessor
|
||||
return super().__getitem__(name)
|
||||
|
||||
def get_item_oapg(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
|
||||
return super().get_item_oapg(name)
|
||||
|
||||
def __new__(
|
||||
cls,
|
||||
*args: typing.Union[dict, frozendict.frozendict, ],
|
||||
_configuration: typing.Optional[schemas.Configuration] = None,
|
||||
**kwargs: typing.Union[MetaOapg.additional_properties, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes, ],
|
||||
) -> 'all_of_1':
|
||||
return super().__new__(
|
||||
cls,
|
||||
*args,
|
||||
_configuration=_configuration,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
|
||||
class all_of_2(
|
||||
schemas.DictSchema
|
||||
):
|
||||
|
||||
|
||||
class MetaOapg:
|
||||
|
||||
|
||||
class additional_properties(
|
||||
schemas.AnyTypeSchema,
|
||||
):
|
||||
|
||||
|
||||
class MetaOapg:
|
||||
max_length = 5
|
||||
|
||||
|
||||
def __new__(
|
||||
cls,
|
||||
*args: typing.Union[dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes, ],
|
||||
_configuration: typing.Optional[schemas.Configuration] = None,
|
||||
**kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
|
||||
) -> 'additional_properties':
|
||||
return super().__new__(
|
||||
cls,
|
||||
*args,
|
||||
_configuration=_configuration,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
def __getitem__(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
|
||||
# dict_instance[name] accessor
|
||||
return super().__getitem__(name)
|
||||
|
||||
def get_item_oapg(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
|
||||
return super().get_item_oapg(name)
|
||||
|
||||
def __new__(
|
||||
cls,
|
||||
*args: typing.Union[dict, frozendict.frozendict, ],
|
||||
_configuration: typing.Optional[schemas.Configuration] = None,
|
||||
**kwargs: typing.Union[MetaOapg.additional_properties, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes, ],
|
||||
) -> 'all_of_2':
|
||||
return super().__new__(
|
||||
cls,
|
||||
*args,
|
||||
_configuration=_configuration,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
@functools.cache
|
||||
def all_of(cls):
|
||||
# we need this here to make our import statements work
|
||||
# we must store _composed_schemas in here so the code is only run
|
||||
# when we invoke this method. If we kept this at the class
|
||||
# level we would get an error because the class level
|
||||
# code would be run when this module is imported, and these composed
|
||||
# classes don't exist yet because their module has not finished
|
||||
# loading
|
||||
return [
|
||||
cls.all_of_0,
|
||||
cls.all_of_1,
|
||||
cls.all_of_2,
|
||||
]
|
||||
|
||||
|
||||
def __new__(
|
||||
cls,
|
||||
*args: typing.Union[dict, frozendict.frozendict, ],
|
||||
_configuration: typing.Optional[schemas.Configuration] = None,
|
||||
**kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
|
||||
) -> 'AdditionalPropertiesValidator':
|
||||
return super().__new__(
|
||||
cls,
|
||||
*args,
|
||||
_configuration=_configuration,
|
||||
**kwargs,
|
||||
)
|
@ -0,0 +1,196 @@
|
||||
# coding: utf-8
|
||||
|
||||
"""
|
||||
OpenAPI Petstore
|
||||
|
||||
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ # noqa: E501
|
||||
|
||||
The version of the OpenAPI document: 1.0.0
|
||||
Generated by: https://openapi-generator.tech
|
||||
"""
|
||||
|
||||
from datetime import date, datetime # noqa: F401
|
||||
import decimal # noqa: F401
|
||||
import functools # noqa: F401
|
||||
import io # noqa: F401
|
||||
import re # noqa: F401
|
||||
import typing # noqa: F401
|
||||
import uuid # noqa: F401
|
||||
|
||||
import frozendict # noqa: F401
|
||||
|
||||
from petstore_api import schemas # noqa: F401
|
||||
|
||||
|
||||
class AdditionalPropertiesValidator(
|
||||
schemas.ComposedBase,
|
||||
schemas.DictSchema
|
||||
):
|
||||
"""NOTE: This class is auto generated by OpenAPI Generator.
|
||||
Ref: https://openapi-generator.tech
|
||||
|
||||
Do not edit the class manually.
|
||||
"""
|
||||
|
||||
|
||||
class MetaOapg:
|
||||
|
||||
|
||||
class all_of_0(
|
||||
schemas.DictSchema
|
||||
):
|
||||
|
||||
|
||||
class MetaOapg:
|
||||
additional_properties = schemas.AnyTypeSchema
|
||||
|
||||
def __getitem__(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
|
||||
# dict_instance[name] accessor
|
||||
return super().__getitem__(name)
|
||||
|
||||
def get_item_oapg(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
|
||||
return super().get_item_oapg(name)
|
||||
|
||||
def __new__(
|
||||
cls,
|
||||
*args: typing.Union[dict, frozendict.frozendict, ],
|
||||
_configuration: typing.Optional[schemas.Configuration] = None,
|
||||
**kwargs: typing.Union[MetaOapg.additional_properties, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes, ],
|
||||
) -> 'all_of_0':
|
||||
return super().__new__(
|
||||
cls,
|
||||
*args,
|
||||
_configuration=_configuration,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
|
||||
class all_of_1(
|
||||
schemas.DictSchema
|
||||
):
|
||||
|
||||
|
||||
class MetaOapg:
|
||||
|
||||
|
||||
class additional_properties(
|
||||
schemas.AnyTypeSchema,
|
||||
):
|
||||
|
||||
|
||||
class MetaOapg:
|
||||
|
||||
|
||||
def __new__(
|
||||
cls,
|
||||
*args: typing.Union[dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes, ],
|
||||
_configuration: typing.Optional[schemas.Configuration] = None,
|
||||
**kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
|
||||
) -> 'additional_properties':
|
||||
return super().__new__(
|
||||
cls,
|
||||
*args,
|
||||
_configuration=_configuration,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
def __getitem__(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
|
||||
# dict_instance[name] accessor
|
||||
return super().__getitem__(name)
|
||||
|
||||
def get_item_oapg(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
|
||||
return super().get_item_oapg(name)
|
||||
|
||||
def __new__(
|
||||
cls,
|
||||
*args: typing.Union[dict, frozendict.frozendict, ],
|
||||
_configuration: typing.Optional[schemas.Configuration] = None,
|
||||
**kwargs: typing.Union[MetaOapg.additional_properties, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes, ],
|
||||
) -> 'all_of_1':
|
||||
return super().__new__(
|
||||
cls,
|
||||
*args,
|
||||
_configuration=_configuration,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
|
||||
class all_of_2(
|
||||
schemas.DictSchema
|
||||
):
|
||||
|
||||
|
||||
class MetaOapg:
|
||||
|
||||
|
||||
class additional_properties(
|
||||
schemas.AnyTypeSchema,
|
||||
):
|
||||
|
||||
|
||||
class MetaOapg:
|
||||
|
||||
|
||||
def __new__(
|
||||
cls,
|
||||
*args: typing.Union[dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes, ],
|
||||
_configuration: typing.Optional[schemas.Configuration] = None,
|
||||
**kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
|
||||
) -> 'additional_properties':
|
||||
return super().__new__(
|
||||
cls,
|
||||
*args,
|
||||
_configuration=_configuration,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
def __getitem__(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
|
||||
# dict_instance[name] accessor
|
||||
return super().__getitem__(name)
|
||||
|
||||
def get_item_oapg(self, name: typing.Union[str, ]) -> MetaOapg.additional_properties:
|
||||
return super().get_item_oapg(name)
|
||||
|
||||
def __new__(
|
||||
cls,
|
||||
*args: typing.Union[dict, frozendict.frozendict, ],
|
||||
_configuration: typing.Optional[schemas.Configuration] = None,
|
||||
**kwargs: typing.Union[MetaOapg.additional_properties, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes, ],
|
||||
) -> 'all_of_2':
|
||||
return super().__new__(
|
||||
cls,
|
||||
*args,
|
||||
_configuration=_configuration,
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
@classmethod
|
||||
@property
|
||||
@functools.cache
|
||||
def all_of(cls):
|
||||
# we need this here to make our import statements work
|
||||
# we must store _composed_schemas in here so the code is only run
|
||||
# when we invoke this method. If we kept this at the class
|
||||
# level we would get an error because the class level
|
||||
# code would be run when this module is imported, and these composed
|
||||
# classes don't exist yet because their module has not finished
|
||||
# loading
|
||||
return [
|
||||
cls.all_of_0,
|
||||
cls.all_of_1,
|
||||
cls.all_of_2,
|
||||
]
|
||||
|
||||
|
||||
def __new__(
|
||||
cls,
|
||||
*args: typing.Union[dict, frozendict.frozendict, ],
|
||||
_configuration: typing.Optional[schemas.Configuration] = None,
|
||||
**kwargs: typing.Union[schemas.AnyTypeSchema, dict, frozendict.frozendict, str, date, datetime, uuid.UUID, int, float, decimal.Decimal, None, list, tuple, bytes],
|
||||
) -> 'AdditionalPropertiesValidator':
|
||||
return super().__new__(
|
||||
cls,
|
||||
*args,
|
||||
_configuration=_configuration,
|
||||
**kwargs,
|
||||
)
|
@ -12,6 +12,7 @@
|
||||
# sys.setrecursionlimit(n)
|
||||
|
||||
from petstore_api.model.additional_properties_class import AdditionalPropertiesClass
|
||||
from petstore_api.model.additional_properties_validator import AdditionalPropertiesValidator
|
||||
from petstore_api.model.additional_properties_with_array_of_enums import AdditionalPropertiesWithArrayOfEnums
|
||||
from petstore_api.model.address import Address
|
||||
from petstore_api.model.animal import Animal
|
||||
|
@ -0,0 +1,25 @@
|
||||
# coding: utf-8
|
||||
|
||||
"""
|
||||
OpenAPI Petstore
|
||||
|
||||
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ # noqa: E501
|
||||
|
||||
The version of the OpenAPI document: 1.0.0
|
||||
Generated by: https://openapi-generator.tech
|
||||
"""
|
||||
|
||||
import unittest
|
||||
|
||||
import petstore_api
|
||||
from petstore_api.model.additional_properties_validator import AdditionalPropertiesValidator
|
||||
from petstore_api import configuration
|
||||
|
||||
|
||||
class TestAdditionalPropertiesValidator(unittest.TestCase):
|
||||
"""AdditionalPropertiesValidator unit test stubs"""
|
||||
_configuration = configuration.Configuration()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
@ -0,0 +1,39 @@
|
||||
# coding: utf-8
|
||||
|
||||
"""
|
||||
OpenAPI Petstore
|
||||
|
||||
This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ # noqa: E501
|
||||
|
||||
The version of the OpenAPI document: 1.0.0
|
||||
Generated by: https://openapi-generator.tech
|
||||
"""
|
||||
|
||||
import unittest
|
||||
|
||||
from petstore_api.model.additional_properties_validator import AdditionalPropertiesValidator
|
||||
from petstore_api import schemas, exceptions
|
||||
|
||||
|
||||
class TestAdditionalPropertiesValidator(unittest.TestCase):
|
||||
"""AdditionalPropertiesValidator unit test stubs"""
|
||||
|
||||
def test_additional_properties_validator(self):
|
||||
with self.assertRaises(exceptions.ApiValueError):
|
||||
AdditionalPropertiesValidator(tooShort='ab')
|
||||
|
||||
with self.assertRaises(exceptions.ApiValueError):
|
||||
AdditionalPropertiesValidator(tooLong='abcdef')
|
||||
|
||||
inst = AdditionalPropertiesValidator(addProp='abc')
|
||||
add_prop = inst['addProp']
|
||||
assert add_prop == 'abc'
|
||||
assert isinstance(add_prop, str)
|
||||
assert isinstance(add_prop, schemas.AnyTypeSchema)
|
||||
assert isinstance(add_prop, AdditionalPropertiesValidator.MetaOapg.all_of[1].MetaOapg.additional_properties)
|
||||
assert isinstance(add_prop, AdditionalPropertiesValidator.MetaOapg.all_of[2].MetaOapg.additional_properties)
|
||||
assert not isinstance(add_prop, schemas.UnsetAnyTypeSchema)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
Loading…
x
Reference in New Issue
Block a user