diff --git a/lms/djangoapps/learner_home/serializers.py b/lms/djangoapps/learner_home/serializers.py index 3c83f433c7..8be5c1545f 100644 --- a/lms/djangoapps/learner_home/serializers.py +++ b/lms/djangoapps/learner_home/serializers.py @@ -460,7 +460,7 @@ class LearnerEnrollmentSerializer(serializers.Serializer): def get_credit(self, instance): """Pull credit statuses from context""" - credit_status = self.context["credit_statuses"].get(str(instance.course_id)) + credit_status = self.context["credit_statuses"].get(instance.course_id) # If user or course is ineligible for credit, return empty if not credit_status: diff --git a/lms/djangoapps/learner_home/test_serializers.py b/lms/djangoapps/learner_home/test_serializers.py index dcc55ecc1e..d65aad6f88 100644 --- a/lms/djangoapps/learner_home/test_serializers.py +++ b/lms/djangoapps/learner_home/test_serializers.py @@ -820,7 +820,7 @@ class TestCreditSerializer(LearnerDashboardBaseTest): """Mock data following the shape of credit_statuses""" return { - "course_key": enrollment.course.id, + "course_key": str(enrollment.course.id), "eligible": True, "deadline": random_date(), "purchased": False, @@ -835,7 +835,7 @@ class TestCreditSerializer(LearnerDashboardBaseTest): def create_test_context(cls, enrollment): """Credit data, packaged as it would be for serialization context""" - return {enrollment.course.id: {**cls.create_test_data(enrollment)}} + return {enrollment.course_id: {**cls.create_test_data(enrollment)}} def test_serialize_credit(self): # Given an enrollment and a course with ability to purchase credit @@ -900,8 +900,18 @@ class TestLearnerEnrollmentsSerializer(LearnerDashboardBaseTest): "programs", "credit", ] + + # Verify we have all the expected keys in our output self.assertEqual(output.keys(), set(expected_keys)) + # Entitlements should be the only empty field for an enrollment + entitlement = output.pop("entitlement") + self.assertDictEqual(entitlement, {}) + + # All other keys should have some basic info, unless we broke something + for key in output.keys(): + self.assertNotEqual(output[key], {}) + def test_credit_no_credit_option(self): # Given an enrollment enrollment = self.create_test_enrollment() diff --git a/lms/djangoapps/learner_home/views.py b/lms/djangoapps/learner_home/views.py index 5ff9dc02d9..1fa115be58 100644 --- a/lms/djangoapps/learner_home/views.py +++ b/lms/djangoapps/learner_home/views.py @@ -343,7 +343,7 @@ def get_course_programs(user, course_enrollments, site): Get programs related to the courses the user is enrolled in. Returns: { - : { + str(): { "programs": [list of programs] } }