diff --git a/lms/djangoapps/learner_home/test_views.py b/lms/djangoapps/learner_home/test_views.py index 6ee3402289..78e69a0224 100644 --- a/lms/djangoapps/learner_home/test_views.py +++ b/lms/djangoapps/learner_home/test_views.py @@ -325,6 +325,18 @@ class TestGetCourseOverviewsForPseudoSessions(SharedModuleStoreTestCase): # Then I should get an empty dict self.assertDictEqual(course_overviews, {}) + def test_entitlement_without_pseudo_session(self): + # Given an unfulfilled entitlement which does not have a psuedo session + pseudo_sessions = { + uuid4(): None, + } + + # When I query course overviews + course_overviews = get_course_overviews_for_pseudo_sessions(pseudo_sessions) + + # Then I should gracefully return none for that entitlement + self.assertDictEqual(course_overviews, {}) + class TestGetEmailSettingsInfo(SharedModuleStoreTestCase): """Tests for get_email_settings_info""" diff --git a/lms/djangoapps/learner_home/views.py b/lms/djangoapps/learner_home/views.py index 4289126922..a4b75e93f0 100644 --- a/lms/djangoapps/learner_home/views.py +++ b/lms/djangoapps/learner_home/views.py @@ -182,6 +182,8 @@ def get_course_overviews_for_pseudo_sessions(unfulfilled_entitlement_pseudo_sess # Get course IDs from unfulfilled entitlement pseudo sessions for pseudo_session in unfulfilled_entitlement_pseudo_sessions.values(): + if not pseudo_session: + continue course_id = pseudo_session.get("key") if course_id: course_ids.append(CourseKey.from_string(course_id))