body type mismatch
Leemur89 opened this issue · comments
Describe the bug
In the _get_kwargs
generated method, the body is determined as File type (because the format in my swagger definition is binary
), but it tries to access its .to_dict
attribute (because body_type is considered as data due to the content type application/x-www-form-urlencoded
), which does not exist because it is a file
OpenAPI Spec File
"content": {
"application/x-www-form-urlencoded": {
"schema": {
"description": "do stuff",
"type": "string",
"format": "binary"
}
}
}
Desktop (please complete the following information):
- OS: macOS 13.3.1
- Python Version: 3.9.8
- openapi-python-client version: 0.17.2
Additional context
In the macro, the arguments
macro determine the argument type of body based on endpoint.bodies[0].prop.get_type_string()
, whereas in the body_to_kwarg
macro it determines it based on body.body_type
, which is determined by the following:
if simplified_content_type == "application/x-www-form-urlencoded":
body_type = BodyType.DATA
elif simplified_content_type == "multipart/form-data":
body_type = BodyType.FILES
elif simplified_content_type == "application/octet-stream":
body_type = BodyType.CONTENT
elif simplified_content_type == "application/json" or simplified_content_type.endswith("+json"):
body_type = BodyType.JSON