From 577d008b6388b3f0058f9f4f59af2b4d939c47af Mon Sep 17 00:00:00 2001 From: Packy Gallagher Date: Mon, 23 Nov 2020 12:05:56 -0800 Subject: [PATCH 1/6] Fix capitalization of models --- openapi_python_client/parser/properties/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openapi_python_client/parser/properties/__init__.py b/openapi_python_client/parser/properties/__init__.py index e203fc99a..48a02b332 100644 --- a/openapi_python_client/parser/properties/__init__.py +++ b/openapi_python_client/parser/properties/__init__.py @@ -239,7 +239,7 @@ def build_model_property( class_name = data.title or name if parent_name: - class_name = f"{utils.pascal_case(parent_name)}{class_name}" + class_name = f"{utils.pascal_case(parent_name)}_{utils.pascal_case(class_name)}" ref = Reference.from_ref(class_name) for key, value in (data.properties or {}).items(): @@ -296,7 +296,7 @@ def build_enum_property( class_name = data.title or name if parent_name: - class_name = f"{utils.pascal_case(parent_name)}{class_name}" + class_name = f"{utils.pascal_case(parent_name)}_{utils.pascal_case(class_name)}" reference = Reference.from_ref(class_name) values = EnumProperty.values_from_list(enum) From 4acde6597be3a3d74398b4d857390f3444f90c2f Mon Sep 17 00:00:00 2001 From: Packy Gallagher Date: Mon, 23 Nov 2020 12:17:40 -0800 Subject: [PATCH 2/6] Update generated code --- .../api/tests/test_inline_objects.py | 14 +++++----- .../custom_e2e/models/__init__.py | 4 +-- ...dy.py => test_inline_objects_json_body.py} | 6 ++-- ...py => test_inline_objects_response_200.py} | 6 ++-- .../api/tests/test_inline_objects.py | 28 +++++++++---------- .../my_test_api_client/models/__init__.py | 4 +-- ...dy.py => test_inline_objects_json_body.py} | 6 ++-- ...py => test_inline_objects_response_200.py} | 6 ++-- 8 files changed, 37 insertions(+), 37 deletions(-) rename end_to_end_tests/golden-record-custom/custom_e2e/models/{test_inline_objectsjson_body.py => test_inline_objects_json_body.py} (77%) rename end_to_end_tests/golden-record-custom/custom_e2e/models/{test_inline_objectsresponse_200.py => test_inline_objects_response_200.py} (75%) rename end_to_end_tests/golden-record/my_test_api_client/models/{test_inline_objectsjson_body.py => test_inline_objects_json_body.py} (77%) rename end_to_end_tests/golden-record/my_test_api_client/models/{test_inline_objectsresponse_200.py => test_inline_objects_response_200.py} (75%) diff --git a/end_to_end_tests/golden-record-custom/custom_e2e/api/tests/test_inline_objects.py b/end_to_end_tests/golden-record-custom/custom_e2e/api/tests/test_inline_objects.py index 8dcede9cb..f68531a3f 100644 --- a/end_to_end_tests/golden-record-custom/custom_e2e/api/tests/test_inline_objects.py +++ b/end_to_end_tests/golden-record-custom/custom_e2e/api/tests/test_inline_objects.py @@ -6,19 +6,19 @@ Client = httpx.Client -from ...models.test_inline_objectsjson_body import TestInlineObjectsjsonBody -from ...models.test_inline_objectsresponse_200 import TestInlineObjectsresponse_200 +from ...models.test_inline_objects_json_body import TestInlineObjects_JsonBody +from ...models.test_inline_objects_response_200 import TestInlineObjects_Response_200 -def _parse_response(*, response: httpx.Response) -> Optional[TestInlineObjectsresponse_200]: +def _parse_response(*, response: httpx.Response) -> Optional[TestInlineObjects_Response_200]: if response.status_code == 200: - response_200 = TestInlineObjectsresponse_200.from_dict(response.json()) + response_200 = TestInlineObjects_Response_200.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[TestInlineObjectsresponse_200]: +def _build_response(*, response: httpx.Response) -> Response[TestInlineObjects_Response_200]: return Response( status_code=response.status_code, content=response.content, @@ -30,8 +30,8 @@ def _build_response(*, response: httpx.Response) -> Response[TestInlineObjectsre def httpx_request( *, client: Client, - json_body: TestInlineObjectsjsonBody, -) -> Response[TestInlineObjectsresponse_200]: + json_body: TestInlineObjects_JsonBody, +) -> Response[TestInlineObjects_Response_200]: json_json_body = json_body.to_dict() diff --git a/end_to_end_tests/golden-record-custom/custom_e2e/models/__init__.py b/end_to_end_tests/golden-record-custom/custom_e2e/models/__init__.py index f99051cf8..09e812954 100644 --- a/end_to_end_tests/golden-record-custom/custom_e2e/models/__init__.py +++ b/end_to_end_tests/golden-record-custom/custom_e2e/models/__init__.py @@ -7,6 +7,6 @@ from .different_enum import DifferentEnum from .http_validation_error import HTTPValidationError from .model_with_union_property import ModelWithUnionProperty -from .test_inline_objectsjson_body import TestInlineObjectsjsonBody -from .test_inline_objectsresponse_200 import TestInlineObjectsresponse_200 +from .test_inline_objects_json_body import TestInlineObjects_JsonBody +from .test_inline_objects_response_200 import TestInlineObjects_Response_200 from .validation_error import ValidationError diff --git a/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objectsjson_body.py b/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_json_body.py similarity index 77% rename from end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objectsjson_body.py rename to end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_json_body.py index 329218025..992b8651f 100644 --- a/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objectsjson_body.py +++ b/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_json_body.py @@ -6,7 +6,7 @@ @attr.s(auto_attribs=True) -class TestInlineObjectsjsonBody: +class TestInlineObjects_JsonBody: """ """ a_property: Union[Unset, str] = UNSET @@ -21,9 +21,9 @@ def to_dict(self) -> Dict[str, Any]: return field_dict @staticmethod - def from_dict(d: Dict[str, Any]) -> "TestInlineObjectsjsonBody": + def from_dict(d: Dict[str, Any]) -> "TestInlineObjects_JsonBody": a_property = d.get("a_property", UNSET) - return TestInlineObjectsjsonBody( + return TestInlineObjects_JsonBody( a_property=a_property, ) diff --git a/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objectsresponse_200.py b/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_response_200.py similarity index 75% rename from end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objectsresponse_200.py rename to end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_response_200.py index 73a6b082a..035820a4e 100644 --- a/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objectsresponse_200.py +++ b/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_response_200.py @@ -6,7 +6,7 @@ @attr.s(auto_attribs=True) -class TestInlineObjectsresponse_200: +class TestInlineObjects_Response_200: """ """ a_property: Union[Unset, str] = UNSET @@ -21,9 +21,9 @@ def to_dict(self) -> Dict[str, Any]: return field_dict @staticmethod - def from_dict(d: Dict[str, Any]) -> "TestInlineObjectsresponse_200": + def from_dict(d: Dict[str, Any]) -> "TestInlineObjects_Response_200": a_property = d.get("a_property", UNSET) - return TestInlineObjectsresponse_200( + return TestInlineObjects_Response_200( a_property=a_property, ) diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/test_inline_objects.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/test_inline_objects.py index 53fc2c021..49868e316 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/test_inline_objects.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/test_inline_objects.py @@ -3,15 +3,15 @@ import httpx from ...client import Client -from ...models.test_inline_objectsjson_body import TestInlineObjectsjsonBody -from ...models.test_inline_objectsresponse_200 import TestInlineObjectsresponse_200 +from ...models.test_inline_objects_json_body import TestInlineObjects_JsonBody +from ...models.test_inline_objects_response_200 import TestInlineObjects_Response_200 from ...types import Response def _get_kwargs( *, client: Client, - json_body: TestInlineObjectsjsonBody, + json_body: TestInlineObjects_JsonBody, ) -> Dict[str, Any]: url = "{}/tests/inline_objects".format(client.base_url) @@ -28,15 +28,15 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[TestInlineObjectsresponse_200]: +def _parse_response(*, response: httpx.Response) -> Optional[TestInlineObjects_Response_200]: if response.status_code == 200: - response_200 = TestInlineObjectsresponse_200.from_dict(response.json()) + response_200 = TestInlineObjects_Response_200.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[TestInlineObjectsresponse_200]: +def _build_response(*, response: httpx.Response) -> Response[TestInlineObjects_Response_200]: return Response( status_code=response.status_code, content=response.content, @@ -48,8 +48,8 @@ def _build_response(*, response: httpx.Response) -> Response[TestInlineObjectsre def sync_detailed( *, client: Client, - json_body: TestInlineObjectsjsonBody, -) -> Response[TestInlineObjectsresponse_200]: + json_body: TestInlineObjects_JsonBody, +) -> Response[TestInlineObjects_Response_200]: kwargs = _get_kwargs( client=client, json_body=json_body, @@ -65,8 +65,8 @@ def sync_detailed( def sync( *, client: Client, - json_body: TestInlineObjectsjsonBody, -) -> Optional[TestInlineObjectsresponse_200]: + json_body: TestInlineObjects_JsonBody, +) -> Optional[TestInlineObjects_Response_200]: """ """ return sync_detailed( @@ -78,8 +78,8 @@ def sync( async def asyncio_detailed( *, client: Client, - json_body: TestInlineObjectsjsonBody, -) -> Response[TestInlineObjectsresponse_200]: + json_body: TestInlineObjects_JsonBody, +) -> Response[TestInlineObjects_Response_200]: kwargs = _get_kwargs( client=client, json_body=json_body, @@ -94,8 +94,8 @@ async def asyncio_detailed( async def asyncio( *, client: Client, - json_body: TestInlineObjectsjsonBody, -) -> Optional[TestInlineObjectsresponse_200]: + json_body: TestInlineObjects_JsonBody, +) -> Optional[TestInlineObjects_Response_200]: """ """ return ( diff --git a/end_to_end_tests/golden-record/my_test_api_client/models/__init__.py b/end_to_end_tests/golden-record/my_test_api_client/models/__init__.py index f99051cf8..09e812954 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/models/__init__.py +++ b/end_to_end_tests/golden-record/my_test_api_client/models/__init__.py @@ -7,6 +7,6 @@ from .different_enum import DifferentEnum from .http_validation_error import HTTPValidationError from .model_with_union_property import ModelWithUnionProperty -from .test_inline_objectsjson_body import TestInlineObjectsjsonBody -from .test_inline_objectsresponse_200 import TestInlineObjectsresponse_200 +from .test_inline_objects_json_body import TestInlineObjects_JsonBody +from .test_inline_objects_response_200 import TestInlineObjects_Response_200 from .validation_error import ValidationError diff --git a/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objectsjson_body.py b/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_json_body.py similarity index 77% rename from end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objectsjson_body.py rename to end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_json_body.py index 329218025..992b8651f 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objectsjson_body.py +++ b/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_json_body.py @@ -6,7 +6,7 @@ @attr.s(auto_attribs=True) -class TestInlineObjectsjsonBody: +class TestInlineObjects_JsonBody: """ """ a_property: Union[Unset, str] = UNSET @@ -21,9 +21,9 @@ def to_dict(self) -> Dict[str, Any]: return field_dict @staticmethod - def from_dict(d: Dict[str, Any]) -> "TestInlineObjectsjsonBody": + def from_dict(d: Dict[str, Any]) -> "TestInlineObjects_JsonBody": a_property = d.get("a_property", UNSET) - return TestInlineObjectsjsonBody( + return TestInlineObjects_JsonBody( a_property=a_property, ) diff --git a/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objectsresponse_200.py b/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_response_200.py similarity index 75% rename from end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objectsresponse_200.py rename to end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_response_200.py index 73a6b082a..035820a4e 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objectsresponse_200.py +++ b/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_response_200.py @@ -6,7 +6,7 @@ @attr.s(auto_attribs=True) -class TestInlineObjectsresponse_200: +class TestInlineObjects_Response_200: """ """ a_property: Union[Unset, str] = UNSET @@ -21,9 +21,9 @@ def to_dict(self) -> Dict[str, Any]: return field_dict @staticmethod - def from_dict(d: Dict[str, Any]) -> "TestInlineObjectsresponse_200": + def from_dict(d: Dict[str, Any]) -> "TestInlineObjects_Response_200": a_property = d.get("a_property", UNSET) - return TestInlineObjectsresponse_200( + return TestInlineObjects_Response_200( a_property=a_property, ) From d1486c8f1cf355733bab13b3d815b5938dcc113a Mon Sep 17 00:00:00 2001 From: Packy Gallagher Date: Mon, 23 Nov 2020 12:33:12 -0800 Subject: [PATCH 3/6] Update test with new submodel naming convention --- tests/test_parser/test_properties/test_init.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/test_parser/test_properties/test_init.py b/tests/test_parser/test_properties/test_init.py index 2bfbd5843..7cacd4dad 100644 --- a/tests/test_parser/test_properties/test_init.py +++ b/tests/test_parser/test_properties/test_init.py @@ -501,21 +501,21 @@ def test_property_from_data_str_enum(self, mocker): required=True, nullable=False, values={"A": "A", "B": "B", "C": "C"}, - reference=Reference(class_name="ParentAnEnum", module_name="parent_an_enum"), + reference=Reference(class_name="Parent_AnEnum", module_name="parent_an_enum"), value_type=str, - default="ParentAnEnum.B", + default="Parent_AnEnum.B", ) assert schemas != new_schemas, "Provided Schemas was mutated" assert new_schemas.enums == { "AnEnum": schemas.enums["AnEnum"], - "ParentAnEnum": prop, + "Parent_AnEnum": prop, } def test_property_from_data_int_enum(self, mocker): from openapi_python_client.parser.properties import EnumProperty, Reference from openapi_python_client.schema import Schema - data = Schema.construct(title="AnEnum", enum=[1, 2, 3], nullable=False, default=3) + data = Schema.construct(title="anEnum", enum=[1, 2, 3], nullable=False, default=3) name = "my_enum" required = True @@ -532,14 +532,14 @@ def test_property_from_data_int_enum(self, mocker): required=True, nullable=False, values={"VALUE_1": 1, "VALUE_2": 2, "VALUE_3": 3}, - reference=Reference(class_name="ParentAnEnum", module_name="parent_an_enum"), + reference=Reference(class_name="Parent_AnEnum", module_name="parent_an_enum"), value_type=int, - default="ParentAnEnum.VALUE_3", + default="Parent_AnEnum.VALUE_3", ) assert schemas != new_schemas, "Provided Schemas was mutated" assert new_schemas.enums == { "AnEnum": schemas.enums["AnEnum"], - "ParentAnEnum": prop, + "Parent_AnEnum": prop, } def test_property_from_data_ref_enum(self): @@ -1065,14 +1065,14 @@ def test_build_model_property(): assert new_schemas != schemas assert new_schemas.models == { "OtherModel": None, - "ParentMyModel": model, + "Parent_MyModel": model, } assert model == ModelProperty( name="prop", required=True, nullable=False, default=None, - reference=Reference(class_name="ParentMyModel", module_name="parent_my_model"), + reference=Reference(class_name="Parent_MyModel", module_name="parent_my_model"), required_properties=[StringProperty(name="req", required=True, nullable=False, default=None)], optional_properties=[DateTimeProperty(name="opt", required=False, nullable=False, default=None)], description=data.description, From 329bf21fd6e020001001b38b7994a527eda2534e Mon Sep 17 00:00:00 2001 From: Packy Gallagher Date: Mon, 23 Nov 2020 13:02:00 -0800 Subject: [PATCH 4/6] Remove _ separator from parent/child in class names --- .../parser/properties/__init__.py | 4 ++-- tests/test_parser/test_properties/test_init.py | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/openapi_python_client/parser/properties/__init__.py b/openapi_python_client/parser/properties/__init__.py index 48a02b332..dbafb1b84 100644 --- a/openapi_python_client/parser/properties/__init__.py +++ b/openapi_python_client/parser/properties/__init__.py @@ -239,7 +239,7 @@ def build_model_property( class_name = data.title or name if parent_name: - class_name = f"{utils.pascal_case(parent_name)}_{utils.pascal_case(class_name)}" + class_name = f"{utils.pascal_case(parent_name)}{utils.pascal_case(class_name)}" ref = Reference.from_ref(class_name) for key, value in (data.properties or {}).items(): @@ -296,7 +296,7 @@ def build_enum_property( class_name = data.title or name if parent_name: - class_name = f"{utils.pascal_case(parent_name)}_{utils.pascal_case(class_name)}" + class_name = f"{utils.pascal_case(parent_name)}{utils.pascal_case(class_name)}" reference = Reference.from_ref(class_name) values = EnumProperty.values_from_list(enum) diff --git a/tests/test_parser/test_properties/test_init.py b/tests/test_parser/test_properties/test_init.py index 7cacd4dad..47360937e 100644 --- a/tests/test_parser/test_properties/test_init.py +++ b/tests/test_parser/test_properties/test_init.py @@ -501,14 +501,14 @@ def test_property_from_data_str_enum(self, mocker): required=True, nullable=False, values={"A": "A", "B": "B", "C": "C"}, - reference=Reference(class_name="Parent_AnEnum", module_name="parent_an_enum"), + reference=Reference(class_name="ParentAnEnum", module_name="parent_an_enum"), value_type=str, - default="Parent_AnEnum.B", + default="ParentAnEnum.B", ) assert schemas != new_schemas, "Provided Schemas was mutated" assert new_schemas.enums == { "AnEnum": schemas.enums["AnEnum"], - "Parent_AnEnum": prop, + "ParentAnEnum": prop, } def test_property_from_data_int_enum(self, mocker): @@ -532,14 +532,14 @@ def test_property_from_data_int_enum(self, mocker): required=True, nullable=False, values={"VALUE_1": 1, "VALUE_2": 2, "VALUE_3": 3}, - reference=Reference(class_name="Parent_AnEnum", module_name="parent_an_enum"), + reference=Reference(class_name="ParentAnEnum", module_name="parent_an_enum"), value_type=int, - default="Parent_AnEnum.VALUE_3", + default="ParentAnEnum.VALUE_3", ) assert schemas != new_schemas, "Provided Schemas was mutated" assert new_schemas.enums == { "AnEnum": schemas.enums["AnEnum"], - "Parent_AnEnum": prop, + "ParentAnEnum": prop, } def test_property_from_data_ref_enum(self): @@ -1065,14 +1065,14 @@ def test_build_model_property(): assert new_schemas != schemas assert new_schemas.models == { "OtherModel": None, - "Parent_MyModel": model, + "ParentMyModel": model, } assert model == ModelProperty( name="prop", required=True, nullable=False, default=None, - reference=Reference(class_name="Parent_MyModel", module_name="parent_my_model"), + reference=Reference(class_name="ParentMyModel", module_name="parent_my_model"), required_properties=[StringProperty(name="req", required=True, nullable=False, default=None)], optional_properties=[DateTimeProperty(name="opt", required=False, nullable=False, default=None)], description=data.description, From c080d4c9f76e5521faf75f6f4dcfae73dfc4025f Mon Sep 17 00:00:00 2001 From: Packy Gallagher Date: Mon, 23 Nov 2020 13:02:36 -0800 Subject: [PATCH 5/6] Update golden records --- .../api/tests/test_inline_objects.py | 14 +++++----- .../custom_e2e/models/__init__.py | 4 +-- .../models/test_inline_objects_json_body.py | 6 ++-- .../test_inline_objects_response_200.py | 6 ++-- .../api/tests/test_inline_objects.py | 28 +++++++++---------- .../my_test_api_client/models/__init__.py | 4 +-- .../models/test_inline_objects_json_body.py | 6 ++-- .../test_inline_objects_response_200.py | 6 ++-- 8 files changed, 37 insertions(+), 37 deletions(-) diff --git a/end_to_end_tests/golden-record-custom/custom_e2e/api/tests/test_inline_objects.py b/end_to_end_tests/golden-record-custom/custom_e2e/api/tests/test_inline_objects.py index f68531a3f..d60561d8a 100644 --- a/end_to_end_tests/golden-record-custom/custom_e2e/api/tests/test_inline_objects.py +++ b/end_to_end_tests/golden-record-custom/custom_e2e/api/tests/test_inline_objects.py @@ -6,19 +6,19 @@ Client = httpx.Client -from ...models.test_inline_objects_json_body import TestInlineObjects_JsonBody -from ...models.test_inline_objects_response_200 import TestInlineObjects_Response_200 +from ...models.test_inline_objects_json_body import TestInlineObjectsJsonBody +from ...models.test_inline_objects_response_200 import TestInlineObjectsResponse_200 -def _parse_response(*, response: httpx.Response) -> Optional[TestInlineObjects_Response_200]: +def _parse_response(*, response: httpx.Response) -> Optional[TestInlineObjectsResponse_200]: if response.status_code == 200: - response_200 = TestInlineObjects_Response_200.from_dict(response.json()) + response_200 = TestInlineObjectsResponse_200.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[TestInlineObjects_Response_200]: +def _build_response(*, response: httpx.Response) -> Response[TestInlineObjectsResponse_200]: return Response( status_code=response.status_code, content=response.content, @@ -30,8 +30,8 @@ def _build_response(*, response: httpx.Response) -> Response[TestInlineObjects_R def httpx_request( *, client: Client, - json_body: TestInlineObjects_JsonBody, -) -> Response[TestInlineObjects_Response_200]: + json_body: TestInlineObjectsJsonBody, +) -> Response[TestInlineObjectsResponse_200]: json_json_body = json_body.to_dict() diff --git a/end_to_end_tests/golden-record-custom/custom_e2e/models/__init__.py b/end_to_end_tests/golden-record-custom/custom_e2e/models/__init__.py index 09e812954..a01ec4327 100644 --- a/end_to_end_tests/golden-record-custom/custom_e2e/models/__init__.py +++ b/end_to_end_tests/golden-record-custom/custom_e2e/models/__init__.py @@ -7,6 +7,6 @@ from .different_enum import DifferentEnum from .http_validation_error import HTTPValidationError from .model_with_union_property import ModelWithUnionProperty -from .test_inline_objects_json_body import TestInlineObjects_JsonBody -from .test_inline_objects_response_200 import TestInlineObjects_Response_200 +from .test_inline_objects_json_body import TestInlineObjectsJsonBody +from .test_inline_objects_response_200 import TestInlineObjectsResponse_200 from .validation_error import ValidationError diff --git a/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_json_body.py b/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_json_body.py index 992b8651f..d40f4f057 100644 --- a/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_json_body.py +++ b/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_json_body.py @@ -6,7 +6,7 @@ @attr.s(auto_attribs=True) -class TestInlineObjects_JsonBody: +class TestInlineObjectsJsonBody: """ """ a_property: Union[Unset, str] = UNSET @@ -21,9 +21,9 @@ def to_dict(self) -> Dict[str, Any]: return field_dict @staticmethod - def from_dict(d: Dict[str, Any]) -> "TestInlineObjects_JsonBody": + def from_dict(d: Dict[str, Any]) -> "TestInlineObjectsJsonBody": a_property = d.get("a_property", UNSET) - return TestInlineObjects_JsonBody( + return TestInlineObjectsJsonBody( a_property=a_property, ) diff --git a/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_response_200.py b/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_response_200.py index 035820a4e..824dd3b5e 100644 --- a/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_response_200.py +++ b/end_to_end_tests/golden-record-custom/custom_e2e/models/test_inline_objects_response_200.py @@ -6,7 +6,7 @@ @attr.s(auto_attribs=True) -class TestInlineObjects_Response_200: +class TestInlineObjectsResponse_200: """ """ a_property: Union[Unset, str] = UNSET @@ -21,9 +21,9 @@ def to_dict(self) -> Dict[str, Any]: return field_dict @staticmethod - def from_dict(d: Dict[str, Any]) -> "TestInlineObjects_Response_200": + def from_dict(d: Dict[str, Any]) -> "TestInlineObjectsResponse_200": a_property = d.get("a_property", UNSET) - return TestInlineObjects_Response_200( + return TestInlineObjectsResponse_200( a_property=a_property, ) diff --git a/end_to_end_tests/golden-record/my_test_api_client/api/tests/test_inline_objects.py b/end_to_end_tests/golden-record/my_test_api_client/api/tests/test_inline_objects.py index 49868e316..0f134aa87 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/api/tests/test_inline_objects.py +++ b/end_to_end_tests/golden-record/my_test_api_client/api/tests/test_inline_objects.py @@ -3,15 +3,15 @@ import httpx from ...client import Client -from ...models.test_inline_objects_json_body import TestInlineObjects_JsonBody -from ...models.test_inline_objects_response_200 import TestInlineObjects_Response_200 +from ...models.test_inline_objects_json_body import TestInlineObjectsJsonBody +from ...models.test_inline_objects_response_200 import TestInlineObjectsResponse_200 from ...types import Response def _get_kwargs( *, client: Client, - json_body: TestInlineObjects_JsonBody, + json_body: TestInlineObjectsJsonBody, ) -> Dict[str, Any]: url = "{}/tests/inline_objects".format(client.base_url) @@ -28,15 +28,15 @@ def _get_kwargs( } -def _parse_response(*, response: httpx.Response) -> Optional[TestInlineObjects_Response_200]: +def _parse_response(*, response: httpx.Response) -> Optional[TestInlineObjectsResponse_200]: if response.status_code == 200: - response_200 = TestInlineObjects_Response_200.from_dict(response.json()) + response_200 = TestInlineObjectsResponse_200.from_dict(response.json()) return response_200 return None -def _build_response(*, response: httpx.Response) -> Response[TestInlineObjects_Response_200]: +def _build_response(*, response: httpx.Response) -> Response[TestInlineObjectsResponse_200]: return Response( status_code=response.status_code, content=response.content, @@ -48,8 +48,8 @@ def _build_response(*, response: httpx.Response) -> Response[TestInlineObjects_R def sync_detailed( *, client: Client, - json_body: TestInlineObjects_JsonBody, -) -> Response[TestInlineObjects_Response_200]: + json_body: TestInlineObjectsJsonBody, +) -> Response[TestInlineObjectsResponse_200]: kwargs = _get_kwargs( client=client, json_body=json_body, @@ -65,8 +65,8 @@ def sync_detailed( def sync( *, client: Client, - json_body: TestInlineObjects_JsonBody, -) -> Optional[TestInlineObjects_Response_200]: + json_body: TestInlineObjectsJsonBody, +) -> Optional[TestInlineObjectsResponse_200]: """ """ return sync_detailed( @@ -78,8 +78,8 @@ def sync( async def asyncio_detailed( *, client: Client, - json_body: TestInlineObjects_JsonBody, -) -> Response[TestInlineObjects_Response_200]: + json_body: TestInlineObjectsJsonBody, +) -> Response[TestInlineObjectsResponse_200]: kwargs = _get_kwargs( client=client, json_body=json_body, @@ -94,8 +94,8 @@ async def asyncio_detailed( async def asyncio( *, client: Client, - json_body: TestInlineObjects_JsonBody, -) -> Optional[TestInlineObjects_Response_200]: + json_body: TestInlineObjectsJsonBody, +) -> Optional[TestInlineObjectsResponse_200]: """ """ return ( diff --git a/end_to_end_tests/golden-record/my_test_api_client/models/__init__.py b/end_to_end_tests/golden-record/my_test_api_client/models/__init__.py index 09e812954..a01ec4327 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/models/__init__.py +++ b/end_to_end_tests/golden-record/my_test_api_client/models/__init__.py @@ -7,6 +7,6 @@ from .different_enum import DifferentEnum from .http_validation_error import HTTPValidationError from .model_with_union_property import ModelWithUnionProperty -from .test_inline_objects_json_body import TestInlineObjects_JsonBody -from .test_inline_objects_response_200 import TestInlineObjects_Response_200 +from .test_inline_objects_json_body import TestInlineObjectsJsonBody +from .test_inline_objects_response_200 import TestInlineObjectsResponse_200 from .validation_error import ValidationError diff --git a/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_json_body.py b/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_json_body.py index 992b8651f..d40f4f057 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_json_body.py +++ b/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_json_body.py @@ -6,7 +6,7 @@ @attr.s(auto_attribs=True) -class TestInlineObjects_JsonBody: +class TestInlineObjectsJsonBody: """ """ a_property: Union[Unset, str] = UNSET @@ -21,9 +21,9 @@ def to_dict(self) -> Dict[str, Any]: return field_dict @staticmethod - def from_dict(d: Dict[str, Any]) -> "TestInlineObjects_JsonBody": + def from_dict(d: Dict[str, Any]) -> "TestInlineObjectsJsonBody": a_property = d.get("a_property", UNSET) - return TestInlineObjects_JsonBody( + return TestInlineObjectsJsonBody( a_property=a_property, ) diff --git a/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_response_200.py b/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_response_200.py index 035820a4e..824dd3b5e 100644 --- a/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_response_200.py +++ b/end_to_end_tests/golden-record/my_test_api_client/models/test_inline_objects_response_200.py @@ -6,7 +6,7 @@ @attr.s(auto_attribs=True) -class TestInlineObjects_Response_200: +class TestInlineObjectsResponse_200: """ """ a_property: Union[Unset, str] = UNSET @@ -21,9 +21,9 @@ def to_dict(self) -> Dict[str, Any]: return field_dict @staticmethod - def from_dict(d: Dict[str, Any]) -> "TestInlineObjects_Response_200": + def from_dict(d: Dict[str, Any]) -> "TestInlineObjectsResponse_200": a_property = d.get("a_property", UNSET) - return TestInlineObjects_Response_200( + return TestInlineObjectsResponse_200( a_property=a_property, ) From d173a6bf9eefe30c8b6470816bf236b40c6aa717 Mon Sep 17 00:00:00 2001 From: Packy Gallagher Date: Mon, 23 Nov 2020 13:10:30 -0800 Subject: [PATCH 6/6] Don't double specify name in list props --- openapi_python_client/parser/properties/__init__.py | 2 +- tests/test_parser/test_properties/test_init.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/openapi_python_client/parser/properties/__init__.py b/openapi_python_client/parser/properties/__init__.py index dbafb1b84..4b71df5a2 100644 --- a/openapi_python_client/parser/properties/__init__.py +++ b/openapi_python_client/parser/properties/__init__.py @@ -373,7 +373,7 @@ def build_list_property( if data.items is None: return PropertyError(data=data, detail="type array must have items defined"), schemas inner_prop, schemas = property_from_data( - name=f"{name}_item", required=True, data=data.items, schemas=schemas, parent_name=f"{parent_name}_{name}" + name=f"{name}_item", required=True, data=data.items, schemas=schemas, parent_name=parent_name ) if isinstance(inner_prop, PropertyError): return PropertyError(data=inner_prop.data, detail=f"invalid data in items of array {name}"), schemas diff --git a/tests/test_parser/test_properties/test_init.py b/tests/test_parser/test_properties/test_init.py index 47360937e..96047c60f 100644 --- a/tests/test_parser/test_properties/test_init.py +++ b/tests/test_parser/test_properties/test_init.py @@ -820,7 +820,7 @@ def test_build_list_property_invalid_items(self, mocker): assert new_schemas == second_schemas assert schemas != new_schemas, "Schema was mutated" property_from_data.assert_called_once_with( - name=f"{name}_item", required=True, data=data.items, schemas=schemas, parent_name="parent_name" + name=f"{name}_item", required=True, data=data.items, schemas=schemas, parent_name="parent" ) def test_build_list_property(self, mocker): @@ -849,7 +849,7 @@ def test_build_list_property(self, mocker): assert new_schemas == second_schemas assert schemas != new_schemas, "Schema was mutated" property_from_data.assert_called_once_with( - name=f"{name}_item", required=True, data=data.items, schemas=schemas, parent_name="parent_prop" + name=f"{name}_item", required=True, data=data.items, schemas=schemas, parent_name="parent" )