mirror of
https://github.com/ansible/awx.git
synced 2026-02-26 07:26:03 -03:30
add type to recent_jobs
This commit is contained in:
@@ -2983,12 +2983,13 @@ class JobTemplateMixin(object):
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
def _recent_jobs(self, obj):
|
def _recent_jobs(self, obj):
|
||||||
if hasattr(obj, 'workflow_jobs'):
|
job_mgr = obj.unifiedjob_unified_jobs.non_polymorphic().exclude(job__job_slice_count__gt=1).only(
|
||||||
job_mgr = obj.workflow_jobs
|
'id', 'status', 'finished', 'polymorphic_ctype_id')
|
||||||
else:
|
type_mapping = {}
|
||||||
job_mgr = obj.jobs
|
for model, ct in ContentType.objects.get_for_models(*UnifiedJob.__subclasses__()).iteritems():
|
||||||
return [{'id': x.id, 'status': x.status, 'finished': x.finished}
|
type_mapping[ct.pk] = model._meta.verbose_name
|
||||||
for x in job_mgr.all().order_by('-created')[:10]]
|
return [{'id': x.id, 'status': x.status, 'finished': x.finished, 'type': type_mapping[x.polymorphic_ctype_id]}
|
||||||
|
for x in job_mgr.order_by('-created')[:10]]
|
||||||
|
|
||||||
def get_summary_fields(self, obj):
|
def get_summary_fields(self, obj):
|
||||||
d = super(JobTemplateMixin, self).get_summary_fields(obj)
|
d = super(JobTemplateMixin, self).get_summary_fields(obj)
|
||||||
|
|||||||
@@ -71,12 +71,20 @@ class TestJobTemplateSerializerGetRelated():
|
|||||||
class TestJobTemplateSerializerGetSummaryFields():
|
class TestJobTemplateSerializerGetSummaryFields():
|
||||||
def test__recent_jobs(self, mocker, job_template, jobs):
|
def test__recent_jobs(self, mocker, job_template, jobs):
|
||||||
|
|
||||||
job_template.jobs.all = mocker.MagicMock(**{'order_by.return_value': jobs})
|
job_template.unifiedjob_unified_jobs = mocker.MagicMock(**{
|
||||||
job_template.jobs.all.return_value = job_template.jobs.all
|
'non_polymorphic.return_value': mocker.MagicMock(**{
|
||||||
|
'only.return_value': mocker.MagicMock(**{
|
||||||
|
'order_by.return_value': jobs
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
serializer = JobTemplateSerializer()
|
serializer = JobTemplateSerializer()
|
||||||
recent_jobs = serializer._recent_jobs(job_template)
|
recent_jobs = serializer._recent_jobs(job_template)
|
||||||
|
|
||||||
|
job_template.unifiedjob_unified_jobs.non_polymorphic.assert_called_once_with()
|
||||||
|
job_template.unifiedjob_unified_jobs.non_polymorphic().only().order_by.assert_called_once_with('-created')
|
||||||
|
|
||||||
job_template.jobs.all.assert_called_once_with()
|
job_template.jobs.all.assert_called_once_with()
|
||||||
job_template.jobs.all.order_by.assert_called_once_with('-created')
|
job_template.jobs.all.order_by.assert_called_once_with('-created')
|
||||||
assert len(recent_jobs) == 10
|
assert len(recent_jobs) == 10
|
||||||
|
|||||||
Reference in New Issue
Block a user