Skip to content

Commit f5f1fc0

Browse files
authored
Fix issue with approval count not reflecting saved value (#590)
1 parent 7254c32 commit f5f1fc0

2 files changed

Lines changed: 20 additions & 0 deletions

File tree

awx/api/serializers.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4354,6 +4354,9 @@ def get_summary_fields(self, obj):
43544354
summary_fields = super(WorkflowJobTemplateNodeSerializer, self).get_summary_fields(obj)
43554355
if isinstance(obj.unified_job_template, WorkflowApprovalTemplate):
43564356
summary_fields['unified_job_template']['timeout'] = obj.unified_job_template.timeout
4357+
summary_fields['unified_job_template']['required_approvals'] = obj.unified_job_template.required_approvals
4358+
summary_fields['unified_job_template']['on_timeout'] = obj.unified_job_template.on_timeout
4359+
summary_fields['unified_job_template']['context_template'] = obj.unified_job_template.context_template
43574360
return summary_fields
43584361

43594362

awx/main/tests/functional/api/test_workflow_node.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,23 @@ def test_approval_node_creation_with_timeout(self, post, approval_node, admin_us
128128
assert isinstance(approval_node.unified_job_template, WorkflowApprovalTemplate)
129129
assert approval_node.unified_job_template.timeout == 10
130130

131+
def test_approval_node_summary_fields(self, get, post, approval_node, admin_user):
132+
create_url = reverse('api:workflow_job_template_node_create_approval', kwargs={'pk': approval_node.pk, 'version': 'v2'})
133+
post(
134+
create_url,
135+
{'name': 'Test', 'description': 'Approval Node', 'timeout': 10, 'required_approvals': 2, 'on_timeout': 'approve', 'context_template': 'hello'},
136+
user=admin_user,
137+
expect=201,
138+
)
139+
140+
detail_url = reverse('api:workflow_job_template_node_detail', kwargs={'pk': approval_node.pk})
141+
res = get(detail_url, user=admin_user, expect=200)
142+
ujt_summary = res.data['summary_fields']['unified_job_template']
143+
assert ujt_summary['timeout'] == 10
144+
assert ujt_summary['required_approvals'] == 2
145+
assert ujt_summary['on_timeout'] == 'approve'
146+
assert ujt_summary['context_template'] == 'hello'
147+
131148
def test_approval_node_creation_failure(self, post, approval_node, admin_user):
132149
# This test leaves off a required param to assert that user will get a 400.
133150
url = reverse('api:workflow_job_template_node_create_approval', kwargs={'pk': approval_node.pk, 'version': 'v2'})

0 commit comments

Comments
 (0)