feat: When attempting to create and objetc must be unique and alrready exists, dont return error return existing object

ref: #855
This commit is contained in:
2025-07-06 22:15:47 +09:30
parent 22ad79386e
commit 45abdc2e00
39 changed files with 299 additions and 38 deletions

View File

@ -1,10 +1,41 @@
import pytest
from django.test import Client
class AdditionalTestCases:
def test_permission_add(self, model_instance, api_request_permissions,
model_kwargs, kwargs_api_create
):
""" Check correct permission for add
Attempt to add as user with permission
"""
client = Client()
client.force_login( api_request_permissions['user']['add'] )
the_model = model_instance( kwargs_create = model_kwargs )
url = the_model.get_url( many = True )
response = client.post(
path = url,
data = kwargs_api_create,
content_type = 'application/json'
)
if response.status_code == 405:
pytest.xfail( reason = 'ViewSet does not have this request method.' )
assert response.status_code == 200, response.content
def test_returned_data_from_user_and_global_organizations_only(
self
):

View File

@ -18,6 +18,10 @@ from api.viewsets.common import ModelViewSet
summary = 'Create a Feature Flag',
description='',
responses = {
200: OpenApiResponse(
description='Already exists',
response = ViewSerializer
),
201: OpenApiResponse(description='Created', response=ViewSerializer),
403: OpenApiResponse(description='User is missing add permissions'),
}

View File

@ -22,6 +22,10 @@ from api.viewsets.common import ModelViewSet
summary = 'Create a GIT Group',
description='Create',
responses = {
200: OpenApiResponse(
description='Already exists',
response = ViewSerializer
),
201: OpenApiResponse(
description='Created. Will be serialized with the serializer matching the provider.',
response = ViewSerializer

View File

@ -60,6 +60,18 @@ from api.viewsets.common import (
many = False,
),
responses = {
200: OpenApiResponse(
description='Already exists',
response=PolymorphicProxySerializer(
component_name = 'Git Provider',
serializers=[
GitHubViewSerializer,
GitLabViewSerializer,
],
resource_type_field_name=None,
many = False,
),
),
201: OpenApiResponse(
description='Created. Will be serialized with the serializer matching the provider.',
response=PolymorphicProxySerializer(

View File

@ -17,6 +17,10 @@ from itam.models.software import Software
summary = 'Enable Feature Flagging for Software',
description='',
responses = {
200: OpenApiResponse(
description='Already exists',
response = ViewSerializer
),
201: OpenApiResponse(description='Created', response=ViewSerializer),
403: OpenApiResponse(description='User is missing add permissions'),
}