From c866d85b8c4fcc879f0a51f50caee5934bcf17dc Mon Sep 17 00:00:00 2001 From: Ryan Petrello Date: Thu, 8 Feb 2018 09:11:50 -0500 Subject: [PATCH] update zoneinfo endpoint to be a list of dicts --- awx/api/views.py | 5 ++++- awx/main/tests/functional/api/test_schedules.py | 7 +++++++ docs/schedules.md | 6 +++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/awx/api/views.py b/awx/api/views.py index 6f888f94722c..2864ee135bbb 100644 --- a/awx/api/views.py +++ b/awx/api/views.py @@ -700,7 +700,10 @@ class ScheduleZoneInfo(APIView): def get(self, request): from dateutil.zoneinfo import get_zonefile_instance - return Response(sorted(get_zonefile_instance().zones.keys())) + return Response([ + {'name': zone} + for zone in sorted(get_zonefile_instance().zones) + ]) class LaunchConfigCredentialsBase(SubListAttachDetachAPIView): diff --git a/awx/main/tests/functional/api/test_schedules.py b/awx/main/tests/functional/api/test_schedules.py index bff29f8b0764..e72b38661053 100644 --- a/awx/main/tests/functional/api/test_schedules.py +++ b/awx/main/tests/functional/api/test_schedules.py @@ -280,3 +280,10 @@ def test_dst_rollback_duplicates(post, admin_user): '2030-11-03 02:30:00-05:00', '2030-11-03 03:30:00-05:00', ] + + +@pytest.mark.django_db +def test_zoneinfo(get, admin_user): + url = reverse('api:schedule_zoneinfo') + r = get(url, admin_user, expect=200) + assert {'name': 'America/New_York'} in r.data diff --git a/docs/schedules.md b/docs/schedules.md index f733b37aa73b..2cfd11676d49 100644 --- a/docs/schedules.md +++ b/docs/schedules.md @@ -41,9 +41,9 @@ A list of _valid_ zone identifiers (which can vary by system) can be found at: HTTP GET /api/v2/schedules/zoneinfo/ [ - "Africa/Abidjan", - "Africa/Accra", - "Africa/Addis_Ababa", + {"name": "Africa/Abidjan"}, + {"name": "Africa/Accra"}, + {"name": "Africa/Addis_Ababa"}, ... ]