fix: safe wrapper for no program banner image

This commit is contained in:
Leangseu Kim
2022-10-05 14:00:01 -04:00
committed by leangseu-edx
parent 56961ce0e6
commit 27006febcd
2 changed files with 18 additions and 1 deletions

View File

@@ -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")

View File

@@ -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