diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 7f4cd08b..696e6e89 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -4354,6 +4354,9 @@ def get_summary_fields(self, obj): summary_fields = super(WorkflowJobTemplateNodeSerializer, self).get_summary_fields(obj) if isinstance(obj.unified_job_template, WorkflowApprovalTemplate): summary_fields['unified_job_template']['timeout'] = obj.unified_job_template.timeout + summary_fields['unified_job_template']['required_approvals'] = obj.unified_job_template.required_approvals + summary_fields['unified_job_template']['on_timeout'] = obj.unified_job_template.on_timeout + summary_fields['unified_job_template']['context_template'] = obj.unified_job_template.context_template return summary_fields diff --git a/awx/main/tests/functional/api/test_workflow_node.py b/awx/main/tests/functional/api/test_workflow_node.py index 5594a80b..0e6e0d6b 100644 --- a/awx/main/tests/functional/api/test_workflow_node.py +++ b/awx/main/tests/functional/api/test_workflow_node.py @@ -128,6 +128,23 @@ def test_approval_node_creation_with_timeout(self, post, approval_node, admin_us assert isinstance(approval_node.unified_job_template, WorkflowApprovalTemplate) assert approval_node.unified_job_template.timeout == 10 + def test_approval_node_summary_fields(self, get, post, approval_node, admin_user): + create_url = reverse('api:workflow_job_template_node_create_approval', kwargs={'pk': approval_node.pk, 'version': 'v2'}) + post( + create_url, + {'name': 'Test', 'description': 'Approval Node', 'timeout': 10, 'required_approvals': 2, 'on_timeout': 'approve', 'context_template': 'hello'}, + user=admin_user, + expect=201, + ) + + detail_url = reverse('api:workflow_job_template_node_detail', kwargs={'pk': approval_node.pk}) + res = get(detail_url, user=admin_user, expect=200) + ujt_summary = res.data['summary_fields']['unified_job_template'] + assert ujt_summary['timeout'] == 10 + assert ujt_summary['required_approvals'] == 2 + assert ujt_summary['on_timeout'] == 'approve' + assert ujt_summary['context_template'] == 'hello' + def test_approval_node_creation_failure(self, post, approval_node, admin_user): # This test leaves off a required param to assert that user will get a 400. url = reverse('api:workflow_job_template_node_create_approval', kwargs={'pk': approval_node.pk, 'version': 'v2'})