From c78cd82a29a65ab0b20631b5e344cc51f7ba8cc4 Mon Sep 17 00:00:00 2001 From: James Kachel Date: Fri, 14 Jul 2023 10:05:30 -0500 Subject: [PATCH] ProgramSerializer should now return default image if there's no program page --- courses/serializers.py | 9 ++++----- courses/serializers_test.py | 8 ++++++++ courses/views/v1/__init__.py | 2 -- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/courses/serializers.py b/courses/serializers.py index 3d9e1888a..45a1ca3e8 100644 --- a/courses/serializers.py +++ b/courses/serializers.py @@ -302,13 +302,12 @@ def get_req_tree(self, instance): return ProgramRequirementTreeSerializer(instance=req_root).data def get_page(self, instance): - return ( - ProgramPageSerializer( + if ProgramPage.objects.filter(program=instance).exists(): + return ProgramPageSerializer( instance=ProgramPage.objects.filter(program=instance).get() ).data - if ProgramPage.objects.filter(program=instance).exists() - else None - ) + else: + return {"feature_image_src": _get_thumbnail_url(None)} class Meta: model = models.Program diff --git a/courses/serializers_test.py b/courses/serializers_test.py index c94f064c0..1e90ed16b 100644 --- a/courses/serializers_test.py +++ b/courses/serializers_test.py @@ -616,3 +616,11 @@ def test_learner_record_serializer(mock_context, program_with_empty_requirements assert user_info_payload == serialized_data["user"] assert program_requirements_payload == serialized_data["program"]["requirements"] assert course_0_payload == serialized_data["program"]["courses"][0] + + +def test_program_serializer_returns_default_image(): + """If the program has no page, we should still get a featured_image_url.""" + + program = ProgramFactory.create(page=None) + + assert "feature_image_src" in ProgramSerializer(program).data["page"] diff --git a/courses/views/v1/__init__.py b/courses/views/v1/__init__.py index 89960d2ad..26c85c9c1 100644 --- a/courses/views/v1/__init__.py +++ b/courses/views/v1/__init__.py @@ -31,8 +31,6 @@ PartnerSchool, Program, ProgramEnrollment, - ProgramRequirement, - ProgramRequirementNodeType, ) from courses.serializers import ( CourseRunEnrollmentSerializer,