def test__add_parameters_fail_loudly_when_location_not_supported( self, mocker): from openapi_python_client.parser.openapi import Endpoint, Schemas endpoint = Endpoint( path="path", method="method", description=None, name="name", requires_security=False, tag="tag", ) parsed_schemas = mocker.MagicMock() mocker.patch(f"{MODULE_NAME}.property_from_data", return_value=(mocker.MagicMock(), parsed_schemas)) param = oai.Parameter.construct(name="test", required=True, param_schema=mocker.MagicMock(), param_in="cookie") schemas = Schemas() result = Endpoint._add_parameters( endpoint=endpoint, data=oai.Operation.construct(parameters=[param]), schemas=schemas) assert result == (ParseError( data=param, detail="Parameter must be declared in path or query"), parsed_schemas)
def test_add_body_bad_data(self, mocker): from openapi_python_client.parser.openapi import Endpoint, Schemas mocker.patch.object(Endpoint, "parse_request_form_body") parse_error = ParseError(data=mocker.MagicMock()) other_schemas = mocker.MagicMock() mocker.patch.object(Endpoint, "parse_request_json_body", return_value=(parse_error, other_schemas)) endpoint = Endpoint( path="path", method="method", description=None, name="name", requires_security=False, tag="tag", relative_imports={"import_3"}, ) request_body = mocker.MagicMock() schemas = Schemas() result = Endpoint._add_body( endpoint=endpoint, data=oai.Operation.construct(requestBody=request_body), schemas=schemas) assert result == ( ParseError(detail=f"cannot parse body of endpoint {endpoint.name}", data=parse_error.data), other_schemas, )
def test__add_responses_status_code_error(self, mocker): from openapi_python_client.parser.openapi import Endpoint, Schemas schemas = Schemas() response_1_data = mocker.MagicMock() response_2_data = mocker.MagicMock() data = { "not_a_number": response_1_data, } endpoint = Endpoint( path="path", method="method", description=None, name="name", requires_security=False, tag="tag", relative_imports={"import_3"}, ) parse_error = ParseError(data=mocker.MagicMock()) response_from_data = mocker.patch(f"{MODULE_NAME}.response_from_data", return_value=(parse_error, schemas)) response, schemas = Endpoint._add_responses(endpoint=endpoint, data=data, schemas=schemas) assert response.errors == [ ParseError( detail= f"Invalid response status code not_a_number (not a number), response will be ommitted from generated client" ) ]
def test_parse_request_json_body_no_data(self): from openapi_python_client.parser.openapi import Endpoint, Schemas body = oai.RequestBody.construct(content={}) schemas = Schemas() result = Endpoint.parse_request_json_body(body=body, schemas=schemas, parent_name="parent") assert result == (None, schemas)
def test__add_responses_error(self, mocker): from openapi_python_client.parser.openapi import Endpoint, Schemas schemas = Schemas() response_1_data = mocker.MagicMock() response_2_data = mocker.MagicMock() data = { "200": response_1_data, "404": response_2_data, } endpoint = Endpoint( path="path", method="method", description=None, name="name", requires_security=False, tag="tag", relative_imports={"import_3"}, ) parse_error = ParseError(data=mocker.MagicMock()) response_from_data = mocker.patch(f"{MODULE_NAME}.response_from_data", return_value=(parse_error, schemas)) response, schemas = Endpoint._add_responses(endpoint=endpoint, data=data, schemas=schemas) response_from_data.assert_has_calls([ mocker.call(status_code=200, data=response_1_data, schemas=schemas, parent_name="name"), mocker.call(status_code=404, data=response_2_data, schemas=schemas, parent_name="name"), ]) assert response.errors == [ ParseError( detail= f"Cannot parse response for status code 200, response will be ommitted from generated client", data=parse_error.data, ), ParseError( detail= f"Cannot parse response for status code 404, response will be ommitted from generated client", data=parse_error.data, ), ]
def test__add_parameters_handles_no_params(self): from openapi_python_client.parser.openapi import Endpoint, Schemas endpoint = Endpoint( path="path", method="method", description=None, name="name", requires_security=False, tag="tag", ) schemas = Schemas() # Just checking there's no exception here assert Endpoint._add_parameters(endpoint=endpoint, data=oai.Operation.construct(), schemas=schemas) == ( endpoint, schemas, )
def test_add_body_no_data(self, mocker): from openapi_python_client.parser.openapi import Endpoint, Schemas parse_request_form_body = mocker.patch.object( Endpoint, "parse_request_form_body") endpoint = Endpoint( path="path", method="method", description=None, name="name", requires_security=False, tag="tag", relative_imports={"import_3"}, ) schemas = Schemas() Endpoint._add_body(endpoint=endpoint, data=oai.Operation.construct(), schemas=schemas) parse_request_form_body.assert_not_called()
def test_parse_request_json_body(self, mocker): from openapi_python_client.parser.openapi import Endpoint, Schemas schema = mocker.MagicMock() body = oai.RequestBody.construct(content={ "application/json": oai.MediaType.construct(media_type_schema=schema) }) property_from_data = mocker.patch(f"{MODULE_NAME}.property_from_data") schemas = Schemas() result = Endpoint.parse_request_json_body(body=body, schemas=schemas, parent_name="parent") property_from_data.assert_called_once_with(name="json_body", required=True, data=schema, schemas=schemas, parent_name="parent") assert result == property_from_data.return_value