Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions awx/api/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -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


Expand Down
17 changes: 17 additions & 0 deletions awx/main/tests/functional/api/test_workflow_node.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'})
Expand Down