From 636147f7f03f7f37440341a6a0849bebec1d08db Mon Sep 17 00:00:00 2001 From: Aaron Tan Date: Thu, 13 Jul 2017 15:17:23 -0400 Subject: [PATCH] Stablize summary field display for host serializer. --- awx/api/serializers.py | 7 +++---- .../tests/unit/api/serializers/test_job_serializers.py | 4 +--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index 42ef6f16f6..ff5a47fe87 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -1250,9 +1250,9 @@ class HostSerializer(BaseSerializerWithVariables): except (KeyError, AttributeError): pass 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: - 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() d.setdefault('groups', {'count': group_cnt, 'results': group_list}) d.setdefault('recent_jobs', [{ @@ -2216,11 +2216,10 @@ class OrganizationCredentialSerializerCreate(CredentialSerializerCreate): class LabelsListMixin(object): 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'): - label_list = [{'id': x.id, 'name': x.name} for x in obj.labels.all()[:10]] label_ct = len(obj.labels.all()) else: - label_list = [{'id': x.id, 'name': x.name} for x in obj.labels.all().order_by('name')[:10]] if len(label_list) < 10: label_ct = len(label_list) else: diff --git a/awx/main/tests/unit/api/serializers/test_job_serializers.py b/awx/main/tests/unit/api/serializers/test_job_serializers.py index 9cdb82c428..e0c22ad014 100644 --- a/awx/main/tests/unit/api/serializers/test_job_serializers.py +++ b/awx/main/tests/unit/api/serializers/test_job_serializers.py @@ -89,13 +89,11 @@ class TestJobSerializerSubstitution(): @mock.patch('awx.api.serializers.BaseSerializer.get_summary_fields', lambda x,y: {}) class TestJobOptionsSerializerGetSummaryFields(): 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.return_value = job_template.labels.all + job_template.labels.all = mocker.MagicMock(**{'return_value': labels}) serializer = JobOptionsSerializer() 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 summary_labels['results'] == [{'id': x.id, 'name': x.name} for x in labels[:10]]