mirror of
https://github.com/ansible/awx.git
synced 2026-04-11 13:09:21 -02:30
Merge pull request #7059 from jangsutsr/6624_stablize_summary_field_display_for_host_serializer
Stablize summary field display for host serializer
This commit is contained in:
@@ -1250,9 +1250,9 @@ class HostSerializer(BaseSerializerWithVariables):
|
|||||||
except (KeyError, AttributeError):
|
except (KeyError, AttributeError):
|
||||||
pass
|
pass
|
||||||
if has_model_field_prefetched(obj, 'groups'):
|
if has_model_field_prefetched(obj, 'groups'):
|
||||||
group_list = sorted([{'id': g.id, 'name': g.name} for g in obj.groups.all()], key=lambda x: x['name'])[:5]
|
group_list = sorted([{'id': g.id, 'name': g.name} for g in obj.groups.all()], key=lambda x: x['id'])[:5]
|
||||||
else:
|
else:
|
||||||
group_list = [{'id': g.id, 'name': g.name} for g in obj.groups.all().order_by('name')[:5]]
|
group_list = [{'id': g.id, 'name': g.name} for g in obj.groups.all().order_by('id')[:5]]
|
||||||
group_cnt = obj.groups.count()
|
group_cnt = obj.groups.count()
|
||||||
d.setdefault('groups', {'count': group_cnt, 'results': group_list})
|
d.setdefault('groups', {'count': group_cnt, 'results': group_list})
|
||||||
d.setdefault('recent_jobs', [{
|
d.setdefault('recent_jobs', [{
|
||||||
@@ -2216,11 +2216,10 @@ class OrganizationCredentialSerializerCreate(CredentialSerializerCreate):
|
|||||||
class LabelsListMixin(object):
|
class LabelsListMixin(object):
|
||||||
|
|
||||||
def _summary_field_labels(self, obj):
|
def _summary_field_labels(self, obj):
|
||||||
|
label_list = [{'id': x.id, 'name': x.name} for x in obj.labels.all()[:10]]
|
||||||
if has_model_field_prefetched(obj, 'labels'):
|
if has_model_field_prefetched(obj, 'labels'):
|
||||||
label_list = [{'id': x.id, 'name': x.name} for x in obj.labels.all()[:10]]
|
|
||||||
label_ct = len(obj.labels.all())
|
label_ct = len(obj.labels.all())
|
||||||
else:
|
else:
|
||||||
label_list = [{'id': x.id, 'name': x.name} for x in obj.labels.all().order_by('name')[:10]]
|
|
||||||
if len(label_list) < 10:
|
if len(label_list) < 10:
|
||||||
label_ct = len(label_list)
|
label_ct = len(label_list)
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -89,13 +89,11 @@ class TestJobSerializerSubstitution():
|
|||||||
@mock.patch('awx.api.serializers.BaseSerializer.get_summary_fields', lambda x,y: {})
|
@mock.patch('awx.api.serializers.BaseSerializer.get_summary_fields', lambda x,y: {})
|
||||||
class TestJobOptionsSerializerGetSummaryFields():
|
class TestJobOptionsSerializerGetSummaryFields():
|
||||||
def test__summary_field_labels_10_max(self, mocker, job_template, labels):
|
def test__summary_field_labels_10_max(self, mocker, job_template, labels):
|
||||||
job_template.labels.all = mocker.MagicMock(**{'order_by.return_value': labels})
|
job_template.labels.all = mocker.MagicMock(**{'return_value': labels})
|
||||||
job_template.labels.all.return_value = job_template.labels.all
|
|
||||||
|
|
||||||
serializer = JobOptionsSerializer()
|
serializer = JobOptionsSerializer()
|
||||||
summary_labels = serializer._summary_field_labels(job_template)
|
summary_labels = serializer._summary_field_labels(job_template)
|
||||||
|
|
||||||
job_template.labels.all.order_by.assert_called_with('name')
|
|
||||||
assert len(summary_labels['results']) == 10
|
assert len(summary_labels['results']) == 10
|
||||||
assert summary_labels['results'] == [{'id': x.id, 'name': x.name} for x in labels[:10]]
|
assert summary_labels['results'] == [{'id': x.id, 'name': x.name} for x in labels[:10]]
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user