From 27006febcd5b9830e0b071a04a66504d00d732d5 Mon Sep 17 00:00:00 2001 From: Leangseu Kim Date: Wed, 5 Oct 2022 14:00:01 -0400 Subject: [PATCH] fix: safe wrapper for no program banner image --- lms/djangoapps/learner_home/serializers.py | 2 +- lms/djangoapps/learner_home/test_serializers.py | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/lms/djangoapps/learner_home/serializers.py b/lms/djangoapps/learner_home/serializers.py index ee0dd1b2b3..e9e4c1c208 100644 --- a/lms/djangoapps/learner_home/serializers.py +++ b/lms/djangoapps/learner_home/serializers.py @@ -345,7 +345,7 @@ class EntitlementSerializer(serializers.Serializer): class RelatedProgramSerializer(serializers.Serializer): """Related programs information""" - bannerImgSrc = serializers.URLField(source="banner_image.small.url") + bannerImgSrc = serializers.URLField(source="banner_image.small.url", default=None) logoImgSrc = serializers.SerializerMethodField() numberOfCourses = serializers.SerializerMethodField() programType = serializers.CharField(source="type") diff --git a/lms/djangoapps/learner_home/test_serializers.py b/lms/djangoapps/learner_home/test_serializers.py index 277e5ada66..1010c686e5 100644 --- a/lms/djangoapps/learner_home/test_serializers.py +++ b/lms/djangoapps/learner_home/test_serializers.py @@ -752,6 +752,23 @@ class TestProgramsSerializer(TestCase): }, ) + def test_empty_source_programs_serializer(self): + """Test the ProgramsSerializer with empty data""" + # Given a program with empty test data + input_data = self.generate_test_related_program() + + input_data["banner_image"] = None + input_data["title"] = None + input_data["type"] = None + + # When I serialize the program + output_data = RelatedProgramSerializer(input_data).data + + # Test the output + self.assertEqual( + output_data['bannerImgSrc'], None + ) + def test_empty_sessions(self): input_data = {"relatedPrograms": []} output_data = ProgramsSerializer(input_data).data