mirror of
https://github.com/ansible/awx.git
synced 2026-03-24 12:25:01 -02:30
Merge pull request #8416 from ryanpetrello/wf-approval-201
make workflow approval creation return an HTTP 201, not 200 OK Reviewed-by: https://github.com/apps/softwarefactory-project-zuul
This commit is contained in:
@@ -3043,7 +3043,7 @@ class WorkflowJobTemplateNodeCreateApproval(RetrieveAPIView):
|
|||||||
approval_template,
|
approval_template,
|
||||||
context=self.get_serializer_context()
|
context=self.get_serializer_context()
|
||||||
).data
|
).data
|
||||||
return Response(data, status=status.HTTP_200_OK)
|
return Response(data, status=status.HTTP_201_CREATED)
|
||||||
|
|
||||||
def check_permissions(self, request):
|
def check_permissions(self, request):
|
||||||
obj = self.get_object().workflow_job_template
|
obj = self.get_object().workflow_job_template
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ class TestApprovalNodes():
|
|||||||
url = reverse('api:workflow_job_template_node_create_approval',
|
url = reverse('api:workflow_job_template_node_create_approval',
|
||||||
kwargs={'pk': approval_node.pk, 'version': 'v2'})
|
kwargs={'pk': approval_node.pk, 'version': 'v2'})
|
||||||
post(url, {'name': 'Test', 'description': 'Approval Node', 'timeout': 0},
|
post(url, {'name': 'Test', 'description': 'Approval Node', 'timeout': 0},
|
||||||
user=admin_user, expect=200)
|
user=admin_user, expect=201)
|
||||||
|
|
||||||
approval_node = WorkflowJobTemplateNode.objects.get(pk=approval_node.pk)
|
approval_node = WorkflowJobTemplateNode.objects.get(pk=approval_node.pk)
|
||||||
assert isinstance(approval_node.unified_job_template, WorkflowApprovalTemplate)
|
assert isinstance(approval_node.unified_job_template, WorkflowApprovalTemplate)
|
||||||
@@ -108,9 +108,9 @@ class TestApprovalNodes():
|
|||||||
assert {'name': ['This field may not be blank.']} == json.loads(r.content)
|
assert {'name': ['This field may not be blank.']} == json.loads(r.content)
|
||||||
|
|
||||||
@pytest.mark.parametrize("is_admin, is_org_admin, status", [
|
@pytest.mark.parametrize("is_admin, is_org_admin, status", [
|
||||||
[True, False, 200], # if they're a WFJT admin, they get a 200
|
[True, False, 201], # if they're a WFJT admin, they get a 201
|
||||||
[False, False, 403], # if they're not a WFJT *nor* org admin, they get a 403
|
[False, False, 403], # if they're not a WFJT *nor* org admin, they get a 403
|
||||||
[False, True, 200], # if they're an organization admin, they get a 200
|
[False, True, 201], # if they're an organization admin, they get a 201
|
||||||
])
|
])
|
||||||
def test_approval_node_creation_rbac(self, post, approval_node, alice, is_admin, is_org_admin, status):
|
def test_approval_node_creation_rbac(self, post, approval_node, alice, is_admin, is_org_admin, status):
|
||||||
url = reverse('api:workflow_job_template_node_create_approval',
|
url = reverse('api:workflow_job_template_node_create_approval',
|
||||||
@@ -165,7 +165,7 @@ class TestApprovalNodes():
|
|||||||
url = reverse('api:workflow_job_template_node_create_approval',
|
url = reverse('api:workflow_job_template_node_create_approval',
|
||||||
kwargs={'pk': node.pk, 'version': 'v2'})
|
kwargs={'pk': node.pk, 'version': 'v2'})
|
||||||
post(url, {'name': 'Approve Test', 'description': '', 'timeout': 0},
|
post(url, {'name': 'Approve Test', 'description': '', 'timeout': 0},
|
||||||
user=admin_user, expect=200)
|
user=admin_user, expect=201)
|
||||||
post(reverse('api:workflow_job_template_launch', kwargs={'pk': wfjt.pk}),
|
post(reverse('api:workflow_job_template_launch', kwargs={'pk': wfjt.pk}),
|
||||||
user=admin_user, expect=201)
|
user=admin_user, expect=201)
|
||||||
wf_job = WorkflowJob.objects.first()
|
wf_job = WorkflowJob.objects.first()
|
||||||
@@ -195,7 +195,7 @@ class TestApprovalNodes():
|
|||||||
url = reverse('api:workflow_job_template_node_create_approval',
|
url = reverse('api:workflow_job_template_node_create_approval',
|
||||||
kwargs={'pk': node.pk, 'version': 'v2'})
|
kwargs={'pk': node.pk, 'version': 'v2'})
|
||||||
post(url, {'name': 'Deny Test', 'description': '', 'timeout': 0},
|
post(url, {'name': 'Deny Test', 'description': '', 'timeout': 0},
|
||||||
user=admin_user, expect=200)
|
user=admin_user, expect=201)
|
||||||
post(reverse('api:workflow_job_template_launch', kwargs={'pk': wfjt.pk}),
|
post(reverse('api:workflow_job_template_launch', kwargs={'pk': wfjt.pk}),
|
||||||
user=admin_user, expect=201)
|
user=admin_user, expect=201)
|
||||||
wf_job = WorkflowJob.objects.first()
|
wf_job = WorkflowJob.objects.first()
|
||||||
|
|||||||
Reference in New Issue
Block a user