forked from loafle/openapi-generator-original
[python-experimental] fixes delete endpoint with no body use case (#12287)
* Generates delete_coffee endpoint * Adds test of delete_coffee * Removes .run files * Fixes bug and adds test * Reverts version file * Reverts function sig * Removes comma
This commit is contained in:
parent
153e1db8a1
commit
8fc85530e8
@ -127,15 +127,21 @@ class RESTClientObject(object):
|
|||||||
len(timeout) == 2):
|
len(timeout) == 2):
|
||||||
timeout = urllib3.Timeout(connect=timeout[0], read=timeout[1])
|
timeout = urllib3.Timeout(connect=timeout[0], read=timeout[1])
|
||||||
|
|
||||||
if 'Content-Type' not in headers:
|
|
||||||
headers['Content-Type'] = 'application/json'
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
|
# For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
|
||||||
if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
|
if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
|
||||||
if query_params:
|
if query_params:
|
||||||
url += '?' + urlencode(query_params)
|
url += '?' + urlencode(query_params)
|
||||||
if headers['Content-Type'] == 'application/x-www-form-urlencoded': # noqa: E501
|
if 'Content-Type' not in headers and body is None:
|
||||||
|
r = self.pool_manager.request(
|
||||||
|
method,
|
||||||
|
url,
|
||||||
|
fields=query_params,
|
||||||
|
preload_content=not stream,
|
||||||
|
timeout=timeout,
|
||||||
|
headers=headers
|
||||||
|
)
|
||||||
|
elif headers['Content-Type'] == 'application/x-www-form-urlencoded': # noqa: E501
|
||||||
r = self.pool_manager.request(
|
r = self.pool_manager.request(
|
||||||
method, url,
|
method, url,
|
||||||
fields=fields,
|
fields=fields,
|
||||||
|
@ -1558,6 +1558,25 @@ paths:
|
|||||||
content:
|
content:
|
||||||
application/json: {}
|
application/json: {}
|
||||||
application/xml: {}
|
application/xml: {}
|
||||||
|
/fake/deleteCoffee/{id}:
|
||||||
|
delete:
|
||||||
|
operationId: deleteCoffee
|
||||||
|
summary: Delete coffee
|
||||||
|
description: Delete the coffee identified by the given id, (delete without request body)
|
||||||
|
tags:
|
||||||
|
- fake
|
||||||
|
parameters:
|
||||||
|
- name: id
|
||||||
|
in: path
|
||||||
|
description: The internal object id
|
||||||
|
required: true
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
|
responses:
|
||||||
|
'200':
|
||||||
|
description: OK
|
||||||
|
default:
|
||||||
|
description: Unexpected error
|
||||||
servers:
|
servers:
|
||||||
- url: 'http://{server}.swagger.io:{port}/v2'
|
- url: 'http://{server}.swagger.io:{port}/v2'
|
||||||
description: petstore server
|
description: petstore server
|
||||||
|
@ -93,6 +93,7 @@ Class | Method | HTTP request | Description
|
|||||||
*FakeApi* | [**case_sensitive_params**](docs/FakeApi.md#case_sensitive_params) | **PUT** /fake/case-sensitive-params |
|
*FakeApi* | [**case_sensitive_params**](docs/FakeApi.md#case_sensitive_params) | **PUT** /fake/case-sensitive-params |
|
||||||
*FakeApi* | [**client_model**](docs/FakeApi.md#client_model) | **PATCH** /fake | To test \"client\" model
|
*FakeApi* | [**client_model**](docs/FakeApi.md#client_model) | **PATCH** /fake | To test \"client\" model
|
||||||
*FakeApi* | [**composed_one_of_different_types**](docs/FakeApi.md#composed_one_of_different_types) | **POST** /fake/refs/composed_one_of_number_with_validations |
|
*FakeApi* | [**composed_one_of_different_types**](docs/FakeApi.md#composed_one_of_different_types) | **POST** /fake/refs/composed_one_of_number_with_validations |
|
||||||
|
*FakeApi* | [**delete_coffee**](docs/FakeApi.md#delete_coffee) | **DELETE** /fake/deleteCoffee/{id} | Delete coffee
|
||||||
*FakeApi* | [**endpoint_parameters**](docs/FakeApi.md#endpoint_parameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
|
*FakeApi* | [**endpoint_parameters**](docs/FakeApi.md#endpoint_parameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
|
||||||
*FakeApi* | [**enum_parameters**](docs/FakeApi.md#enum_parameters) | **GET** /fake | To test enum parameters
|
*FakeApi* | [**enum_parameters**](docs/FakeApi.md#enum_parameters) | **GET** /fake | To test enum parameters
|
||||||
*FakeApi* | [**fake_health_get**](docs/FakeApi.md#fake_health_get) | **GET** /fake/health | Health check endpoint
|
*FakeApi* | [**fake_health_get**](docs/FakeApi.md#fake_health_get) | **GET** /fake/health | Health check endpoint
|
||||||
|
@ -13,6 +13,7 @@ Method | HTTP request | Description
|
|||||||
[**case_sensitive_params**](FakeApi.md#case_sensitive_params) | **PUT** /fake/case-sensitive-params |
|
[**case_sensitive_params**](FakeApi.md#case_sensitive_params) | **PUT** /fake/case-sensitive-params |
|
||||||
[**client_model**](FakeApi.md#client_model) | **PATCH** /fake | To test \"client\" model
|
[**client_model**](FakeApi.md#client_model) | **PATCH** /fake | To test \"client\" model
|
||||||
[**composed_one_of_different_types**](FakeApi.md#composed_one_of_different_types) | **POST** /fake/refs/composed_one_of_number_with_validations |
|
[**composed_one_of_different_types**](FakeApi.md#composed_one_of_different_types) | **POST** /fake/refs/composed_one_of_number_with_validations |
|
||||||
|
[**delete_coffee**](FakeApi.md#delete_coffee) | **DELETE** /fake/deleteCoffee/{id} | Delete coffee
|
||||||
[**endpoint_parameters**](FakeApi.md#endpoint_parameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
|
[**endpoint_parameters**](FakeApi.md#endpoint_parameters) | **POST** /fake | Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트
|
||||||
[**enum_parameters**](FakeApi.md#enum_parameters) | **GET** /fake | To test enum parameters
|
[**enum_parameters**](FakeApi.md#enum_parameters) | **GET** /fake | To test enum parameters
|
||||||
[**fake_health_get**](FakeApi.md#fake_health_get) | **GET** /fake/health | Health check endpoint
|
[**fake_health_get**](FakeApi.md#fake_health_get) | **GET** /fake/health | Health check endpoint
|
||||||
@ -826,6 +827,95 @@ No authorization required
|
|||||||
|
|
||||||
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||||
|
|
||||||
|
# **delete_coffee**
|
||||||
|
> delete_coffee(id)
|
||||||
|
|
||||||
|
Delete coffee
|
||||||
|
|
||||||
|
Delete the coffee identified by the given id, (delete without request body)
|
||||||
|
|
||||||
|
### Example
|
||||||
|
|
||||||
|
```python
|
||||||
|
import petstore_api
|
||||||
|
from petstore_api.api import fake_api
|
||||||
|
from pprint import pprint
|
||||||
|
# Defining the host is optional and defaults to http://petstore.swagger.io:80/v2
|
||||||
|
# See configuration.py for a list of all supported configuration parameters.
|
||||||
|
configuration = petstore_api.Configuration(
|
||||||
|
host = "http://petstore.swagger.io:80/v2"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Enter a context with an instance of the API client
|
||||||
|
with petstore_api.ApiClient(configuration) as api_client:
|
||||||
|
# Create an instance of the API class
|
||||||
|
api_instance = fake_api.FakeApi(api_client)
|
||||||
|
|
||||||
|
# example passing only required values which don't have defaults set
|
||||||
|
path_params = {
|
||||||
|
'id': "id_example",
|
||||||
|
}
|
||||||
|
try:
|
||||||
|
# Delete coffee
|
||||||
|
api_response = api_instance.delete_coffee(
|
||||||
|
path_params=path_params,
|
||||||
|
)
|
||||||
|
except petstore_api.ApiException as e:
|
||||||
|
print("Exception when calling FakeApi->delete_coffee: %s\n" % e)
|
||||||
|
```
|
||||||
|
### Parameters
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------- | ------------- | ------------- | -------------
|
||||||
|
path_params | RequestPathParams | |
|
||||||
|
stream | bool | default is False | if True then the response.content will be streamed and loaded from a file like object. When downloading a file, set this to True to force the code to deserialize the content to a FileSchema file
|
||||||
|
timeout | typing.Optional[typing.Union[int, typing.Tuple]] | default is None | the timeout used by the rest client
|
||||||
|
skip_deserialization | bool | default is False | when True, headers and body will be unset and an instance of api_client.ApiResponseWithoutDeserialization will be returned
|
||||||
|
|
||||||
|
### path_params
|
||||||
|
#### RequestPathParams
|
||||||
|
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------- | ------------- | ------------- | -------------
|
||||||
|
id | IdSchema | |
|
||||||
|
|
||||||
|
#### IdSchema
|
||||||
|
|
||||||
|
Type | Description | Notes
|
||||||
|
------------- | ------------- | -------------
|
||||||
|
**str** | |
|
||||||
|
|
||||||
|
### Return Types, Responses
|
||||||
|
|
||||||
|
Code | Class | Description
|
||||||
|
------------- | ------------- | -------------
|
||||||
|
n/a | api_client.ApiResponseWithoutDeserialization | When skip_deserialization is True this response is returned
|
||||||
|
200 | ApiResponseFor200 | OK
|
||||||
|
default | ApiResponseForDefault | Unexpected error
|
||||||
|
|
||||||
|
#### ApiResponseFor200
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------- | ------------- | ------------- | -------------
|
||||||
|
response | urllib3.HTTPResponse | Raw response |
|
||||||
|
body | Unset | body was not defined |
|
||||||
|
headers | Unset | headers were not defined |
|
||||||
|
|
||||||
|
#### ApiResponseForDefault
|
||||||
|
Name | Type | Description | Notes
|
||||||
|
------------- | ------------- | ------------- | -------------
|
||||||
|
response | urllib3.HTTPResponse | Raw response |
|
||||||
|
body | Unset | body was not defined |
|
||||||
|
headers | Unset | headers were not defined |
|
||||||
|
|
||||||
|
|
||||||
|
void (empty response body)
|
||||||
|
|
||||||
|
### Authorization
|
||||||
|
|
||||||
|
No authorization required
|
||||||
|
|
||||||
|
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
|
||||||
|
|
||||||
# **endpoint_parameters**
|
# **endpoint_parameters**
|
||||||
> endpoint_parameters()
|
> endpoint_parameters()
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@ from petstore_api.api.fake_api_endpoints.boolean import Boolean
|
|||||||
from petstore_api.api.fake_api_endpoints.case_sensitive_params import CaseSensitiveParams
|
from petstore_api.api.fake_api_endpoints.case_sensitive_params import CaseSensitiveParams
|
||||||
from petstore_api.api.fake_api_endpoints.client_model import ClientModel
|
from petstore_api.api.fake_api_endpoints.client_model import ClientModel
|
||||||
from petstore_api.api.fake_api_endpoints.composed_one_of_different_types import ComposedOneOfDifferentTypes
|
from petstore_api.api.fake_api_endpoints.composed_one_of_different_types import ComposedOneOfDifferentTypes
|
||||||
|
from petstore_api.api.fake_api_endpoints.delete_coffee import DeleteCoffee
|
||||||
from petstore_api.api.fake_api_endpoints.endpoint_parameters import EndpointParameters
|
from petstore_api.api.fake_api_endpoints.endpoint_parameters import EndpointParameters
|
||||||
from petstore_api.api.fake_api_endpoints.enum_parameters import EnumParameters
|
from petstore_api.api.fake_api_endpoints.enum_parameters import EnumParameters
|
||||||
from petstore_api.api.fake_api_endpoints.fake_health_get import FakeHealthGet
|
from petstore_api.api.fake_api_endpoints.fake_health_get import FakeHealthGet
|
||||||
@ -52,6 +53,7 @@ class FakeApi(
|
|||||||
CaseSensitiveParams,
|
CaseSensitiveParams,
|
||||||
ClientModel,
|
ClientModel,
|
||||||
ComposedOneOfDifferentTypes,
|
ComposedOneOfDifferentTypes,
|
||||||
|
DeleteCoffee,
|
||||||
EndpointParameters,
|
EndpointParameters,
|
||||||
EnumParameters,
|
EnumParameters,
|
||||||
FakeHealthGet,
|
FakeHealthGet,
|
||||||
|
@ -0,0 +1,180 @@
|
|||||||
|
# coding: utf-8
|
||||||
|
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
Generated by: https://openapi-generator.tech
|
||||||
|
"""
|
||||||
|
|
||||||
|
from dataclasses import dataclass
|
||||||
|
import re # noqa: F401
|
||||||
|
import sys # noqa: F401
|
||||||
|
import typing
|
||||||
|
import urllib3
|
||||||
|
import functools # noqa: F401
|
||||||
|
|
||||||
|
from petstore_api import api_client, exceptions
|
||||||
|
import decimal # noqa: F401
|
||||||
|
from datetime import date, datetime # noqa: F401
|
||||||
|
from frozendict import frozendict # noqa: F401
|
||||||
|
|
||||||
|
from petstore_api.schemas import ( # noqa: F401
|
||||||
|
AnyTypeSchema,
|
||||||
|
ComposedSchema,
|
||||||
|
DictSchema,
|
||||||
|
ListSchema,
|
||||||
|
StrSchema,
|
||||||
|
IntSchema,
|
||||||
|
Int32Schema,
|
||||||
|
Int64Schema,
|
||||||
|
Float32Schema,
|
||||||
|
Float64Schema,
|
||||||
|
NumberSchema,
|
||||||
|
UUIDSchema,
|
||||||
|
DateSchema,
|
||||||
|
DateTimeSchema,
|
||||||
|
DecimalSchema,
|
||||||
|
BoolSchema,
|
||||||
|
BinarySchema,
|
||||||
|
NoneSchema,
|
||||||
|
none_type,
|
||||||
|
Configuration,
|
||||||
|
Unset,
|
||||||
|
unset,
|
||||||
|
ComposedBase,
|
||||||
|
ListBase,
|
||||||
|
DictBase,
|
||||||
|
NoneBase,
|
||||||
|
StrBase,
|
||||||
|
IntBase,
|
||||||
|
Int32Base,
|
||||||
|
Int64Base,
|
||||||
|
Float32Base,
|
||||||
|
Float64Base,
|
||||||
|
NumberBase,
|
||||||
|
UUIDBase,
|
||||||
|
DateBase,
|
||||||
|
DateTimeBase,
|
||||||
|
BoolBase,
|
||||||
|
BinaryBase,
|
||||||
|
Schema,
|
||||||
|
_SchemaValidator,
|
||||||
|
_SchemaTypeChecker,
|
||||||
|
_SchemaEnumMaker
|
||||||
|
)
|
||||||
|
|
||||||
|
# path params
|
||||||
|
IdSchema = StrSchema
|
||||||
|
RequestRequiredPathParams = typing.TypedDict(
|
||||||
|
'RequestRequiredPathParams',
|
||||||
|
{
|
||||||
|
'id': IdSchema,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
RequestOptionalPathParams = typing.TypedDict(
|
||||||
|
'RequestOptionalPathParams',
|
||||||
|
{
|
||||||
|
},
|
||||||
|
total=False
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class RequestPathParams(RequestRequiredPathParams, RequestOptionalPathParams):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
request_path_id = api_client.PathParameter(
|
||||||
|
name="id",
|
||||||
|
style=api_client.ParameterStyle.SIMPLE,
|
||||||
|
schema=IdSchema,
|
||||||
|
required=True,
|
||||||
|
)
|
||||||
|
_path = '/fake/deleteCoffee/{id}'
|
||||||
|
_method = 'DELETE'
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ApiResponseFor200(api_client.ApiResponse):
|
||||||
|
response: urllib3.HTTPResponse
|
||||||
|
body: Unset = unset
|
||||||
|
headers: Unset = unset
|
||||||
|
|
||||||
|
|
||||||
|
_response_for_200 = api_client.OpenApiResponse(
|
||||||
|
response_cls=ApiResponseFor200,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class ApiResponseForDefault(api_client.ApiResponse):
|
||||||
|
response: urllib3.HTTPResponse
|
||||||
|
body: Unset = unset
|
||||||
|
headers: Unset = unset
|
||||||
|
|
||||||
|
|
||||||
|
_response_for_default = api_client.OpenApiResponse(
|
||||||
|
response_cls=ApiResponseForDefault,
|
||||||
|
)
|
||||||
|
_status_code_to_response = {
|
||||||
|
'200': _response_for_200,
|
||||||
|
'default': _response_for_default,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class DeleteCoffee(api_client.Api):
|
||||||
|
|
||||||
|
def delete_coffee(
|
||||||
|
self: api_client.Api,
|
||||||
|
path_params: RequestPathParams = frozendict(),
|
||||||
|
stream: bool = False,
|
||||||
|
timeout: typing.Optional[typing.Union[int, typing.Tuple]] = None,
|
||||||
|
skip_deserialization: bool = False,
|
||||||
|
) -> typing.Union[
|
||||||
|
ApiResponseFor200,
|
||||||
|
ApiResponseForDefault,
|
||||||
|
api_client.ApiResponseWithoutDeserialization
|
||||||
|
]:
|
||||||
|
"""
|
||||||
|
Delete coffee
|
||||||
|
:param skip_deserialization: If true then api_response.response will be set but
|
||||||
|
api_response.body and api_response.headers will not be deserialized into schema
|
||||||
|
class instances
|
||||||
|
"""
|
||||||
|
self._verify_typed_dict_inputs(RequestPathParams, path_params)
|
||||||
|
|
||||||
|
_path_params = {}
|
||||||
|
for parameter in (
|
||||||
|
request_path_id,
|
||||||
|
):
|
||||||
|
parameter_data = path_params.get(parameter.name, unset)
|
||||||
|
if parameter_data is unset:
|
||||||
|
continue
|
||||||
|
serialized_data = parameter.serialize(parameter_data)
|
||||||
|
_path_params.update(serialized_data)
|
||||||
|
# TODO add cookie handling
|
||||||
|
|
||||||
|
response = self.api_client.call_api(
|
||||||
|
resource_path=_path,
|
||||||
|
method=_method,
|
||||||
|
path_params=_path_params,
|
||||||
|
stream=stream,
|
||||||
|
timeout=timeout,
|
||||||
|
)
|
||||||
|
|
||||||
|
if skip_deserialization:
|
||||||
|
api_response = api_client.ApiResponseWithoutDeserialization(response=response)
|
||||||
|
else:
|
||||||
|
response_for_status = _status_code_to_response.get(str(response.status))
|
||||||
|
if response_for_status:
|
||||||
|
api_response = response_for_status.deserialize(response, self.api_client.configuration)
|
||||||
|
else:
|
||||||
|
default_response = _status_code_to_response.get('default')
|
||||||
|
if default_response:
|
||||||
|
api_response = default_response.deserialize(response, self.api_client.configuration)
|
||||||
|
else:
|
||||||
|
api_response = api_client.ApiResponseWithoutDeserialization(response=response)
|
||||||
|
|
||||||
|
if not 200 <= response.status <= 299:
|
||||||
|
raise exceptions.ApiException(api_response=api_response)
|
||||||
|
|
||||||
|
return api_response
|
@ -134,15 +134,21 @@ class RESTClientObject(object):
|
|||||||
len(timeout) == 2):
|
len(timeout) == 2):
|
||||||
timeout = urllib3.Timeout(connect=timeout[0], read=timeout[1])
|
timeout = urllib3.Timeout(connect=timeout[0], read=timeout[1])
|
||||||
|
|
||||||
if 'Content-Type' not in headers:
|
|
||||||
headers['Content-Type'] = 'application/json'
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
|
# For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
|
||||||
if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
|
if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
|
||||||
if query_params:
|
if query_params:
|
||||||
url += '?' + urlencode(query_params)
|
url += '?' + urlencode(query_params)
|
||||||
if headers['Content-Type'] == 'application/x-www-form-urlencoded': # noqa: E501
|
if 'Content-Type' not in headers and body is None:
|
||||||
|
r = self.pool_manager.request(
|
||||||
|
method,
|
||||||
|
url,
|
||||||
|
fields=query_params,
|
||||||
|
preload_content=not stream,
|
||||||
|
timeout=timeout,
|
||||||
|
headers=headers
|
||||||
|
)
|
||||||
|
elif headers['Content-Type'] == 'application/x-www-form-urlencoded': # noqa: E501
|
||||||
r = self.pool_manager.request(
|
r = self.pool_manager.request(
|
||||||
method, url,
|
method, url,
|
||||||
fields=fields,
|
fields=fields,
|
||||||
|
@ -38,6 +38,7 @@ class TestFakeApi(unittest.TestCase):
|
|||||||
json_content_type = 'application/json'
|
json_content_type = 'application/json'
|
||||||
configuration = petstore_api.Configuration()
|
configuration = petstore_api.Configuration()
|
||||||
api = FakeApi(api_client=api_client.ApiClient(configuration=configuration))
|
api = FakeApi(api_client=api_client.ApiClient(configuration=configuration))
|
||||||
|
user_agent = 'OpenAPI-Generator/1.0.0/python'
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def headers_for_content_type(content_type: str) -> dict[str, str]:
|
def headers_for_content_type(content_type: str) -> dict[str, str]:
|
||||||
@ -66,8 +67,9 @@ class TestFakeApi(unittest.TestCase):
|
|||||||
def __json_bytes(in_data: typing.Any) -> bytes:
|
def __json_bytes(in_data: typing.Any) -> bytes:
|
||||||
return json.dumps(in_data, separators=(",", ":"), ensure_ascii=False).encode('utf-8')
|
return json.dumps(in_data, separators=(",", ":"), ensure_ascii=False).encode('utf-8')
|
||||||
|
|
||||||
@staticmethod
|
@classmethod
|
||||||
def __assert_request_called_with(
|
def __assert_request_called_with(
|
||||||
|
cls,
|
||||||
mock_request,
|
mock_request,
|
||||||
url: str,
|
url: str,
|
||||||
method: str = 'POST',
|
method: str = 'POST',
|
||||||
@ -80,8 +82,10 @@ class TestFakeApi(unittest.TestCase):
|
|||||||
):
|
):
|
||||||
headers = {
|
headers = {
|
||||||
'Accept': accept_content_type,
|
'Accept': accept_content_type,
|
||||||
'User-Agent': 'OpenAPI-Generator/1.0.0/python'
|
'User-Agent': cls.user_agent
|
||||||
}
|
}
|
||||||
|
if accept_content_type:
|
||||||
|
headers['Accept'] = accept_content_type
|
||||||
if content_type:
|
if content_type:
|
||||||
headers['Content-Type'] = content_type
|
headers['Content-Type'] = content_type
|
||||||
kwargs = dict(
|
kwargs = dict(
|
||||||
@ -99,6 +103,39 @@ class TestFakeApi(unittest.TestCase):
|
|||||||
**kwargs
|
**kwargs
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def __assert_pool_manager_request_called_with(
|
||||||
|
cls,
|
||||||
|
mock_request,
|
||||||
|
url: str,
|
||||||
|
method: str = 'POST',
|
||||||
|
body: typing.Optional[bytes] = None,
|
||||||
|
content_type: typing.Optional[str] = 'application/json',
|
||||||
|
accept_content_type: typing.Optional[str] = 'application/json',
|
||||||
|
stream: bool = False,
|
||||||
|
query_params: typing.Optional[typing.Tuple[typing.Tuple[str, str], ...]] = None,
|
||||||
|
):
|
||||||
|
headers = {
|
||||||
|
'User-Agent': cls.user_agent
|
||||||
|
}
|
||||||
|
if accept_content_type:
|
||||||
|
headers['Accept'] = accept_content_type
|
||||||
|
if content_type:
|
||||||
|
headers['Content-Type'] = content_type
|
||||||
|
kwargs = dict(
|
||||||
|
headers=HTTPHeaderDict(headers),
|
||||||
|
fields=query_params,
|
||||||
|
preload_content=not stream,
|
||||||
|
timeout=None,
|
||||||
|
)
|
||||||
|
if content_type and method != 'GET':
|
||||||
|
kwargs['body'] = body
|
||||||
|
mock_request.assert_called_with(
|
||||||
|
method,
|
||||||
|
url,
|
||||||
|
**kwargs
|
||||||
|
)
|
||||||
|
|
||||||
def test_array_model(self):
|
def test_array_model(self):
|
||||||
from petstore_api.model import animal_farm, animal
|
from petstore_api.model import animal_farm, animal
|
||||||
|
|
||||||
@ -738,6 +775,27 @@ class TestFakeApi(unittest.TestCase):
|
|||||||
with self.assertRaises(exceptions.ApiValueError):
|
with self.assertRaises(exceptions.ApiValueError):
|
||||||
self.api.response_without_schema()
|
self.api.response_without_schema()
|
||||||
|
|
||||||
|
def test_delete_endpoint_without_request_body(self):
|
||||||
|
with patch.object(urllib3.PoolManager, 'request') as mock_request:
|
||||||
|
|
||||||
|
body = None
|
||||||
|
mock_request.return_value = self.__response(
|
||||||
|
self.__json_bytes(body),
|
||||||
|
)
|
||||||
|
|
||||||
|
api_response = self.api.delete_coffee(path_params=dict(id='1'))
|
||||||
|
self.__assert_pool_manager_request_called_with(
|
||||||
|
mock_request,
|
||||||
|
'http://petstore.swagger.io:80/v2/fake/deleteCoffee/1',
|
||||||
|
method='DELETE',
|
||||||
|
content_type=None,
|
||||||
|
accept_content_type=None,
|
||||||
|
)
|
||||||
|
|
||||||
|
assert isinstance(api_response.response, urllib3.HTTPResponse)
|
||||||
|
assert isinstance(api_response.body, schemas.Unset)
|
||||||
|
assert isinstance(api_response.headers, schemas.Unset)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user