openapi-generator icon indicating copy to clipboard operation
openapi-generator copied to clipboard

[BUG] [Python] _headers is not initialized properly for delete functions

Open Santobert opened this issue 3 years ago • 1 comments

Bug Report Checklist

  • [x] Have you provided a full/minimal spec to reproduce the issue?
  • [x] Have you validated the input using an OpenAPI validator (example)?
  • [ ] Have you tested with the latest master to confirm the issue still exists?
  • [x] Have you searched for related issues/PRs?
  • [x] What's the actual output vs expected output?
  • [ ] [Optional] Sponsorship to speed up the bug fix or feature request (example)
Description

When deleting objects using the new python generator, an error occurs in api_client.py update_params_for_auth():

AttributeError: 'dict' object has no attribute 'add'

This error can be traced back to the paths/{my api}/delete.py file, where the following line is missing unlike the other files (get.py, put.py, ...):

        _headers = HTTPHeaderDict()

This results in the variable headers becoming an empty dict in api_client.py __call_api():

        headers = headers or {}
openapi-generator version

6.2.0

OpenAPI declaration file content or url
Generation Details
java -jar openapi-generator-cli-6.2.0.jar generate -i openapi.yaml -g python -o python
Steps to reproduce
Related issues/PRs
Suggest a fix

Either the missing line needs to be added to delete.py: https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/main/resources/python/endpoint.handlebars#L316

or the headers should be initialized as HTTPHeaderDict

Santobert avatar Oct 14 '22 08:10 Santobert

Maybe this was fixed by https://github.com/OpenAPITools/openapi-generator/pull/13665 Is there still an underlying issue that the line _headers = HTTPHeaderDict() is not generated for delete.py and it only works because of the fallback in api_client.py __call_api()?

If not, feel free to close this issue.

Santobert avatar Oct 14 '22 09:10 Santobert

Yes that was fixed in the PR that you linked to. In 6.2.1 or the latest version of the project, this should be fixed.

spacether avatar Oct 18 '22 01:10 spacether