Skip to content

Commit

Permalink
Fixed incorrect OpenAPI response schema generation for a DELETE metho…
Browse files Browse the repository at this point in the history
…d in generic views (encode#6860)
  • Loading branch information
knivets authored and sigvef committed Dec 3, 2022
1 parent 77723bd commit a2edff0
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
7 changes: 7 additions & 0 deletions rest_framework/schemas/openapi.py
Expand Up @@ -465,6 +465,13 @@ def _get_request_body(self, path, method):

def _get_responses(self, path, method):
# TODO: Handle multiple codes and pagination classes.
if method == 'DELETE':
return {
'204': {
'description': ''
}
}

item_schema = {}
serializer = self._get_serializer(path, method)

Expand Down
23 changes: 23 additions & 0 deletions tests/schemas/test_openapi.py
Expand Up @@ -264,6 +264,29 @@ class View(generics.GenericAPIView):
},
}

def test_delete_response_body_generation(self):
"""Test that a view's delete method generates a proper response body schema."""
path = '/{id}/'
method = 'DELETE'

class View(generics.DestroyAPIView):
serializer_class = views.ExampleSerializer

view = create_view(
View,
method,
create_request(path),
)
inspector = AutoSchema()
inspector.view = view

responses = inspector._get_responses(path, method)
assert responses == {
'204': {
'description': '',
},
}

def test_retrieve_response_body_generation(self):
"""Test that a list of properties is returned for retrieve item views."""
path = '/{id}/'
Expand Down

0 comments on commit a2edff0

Please sign in to comment.