From 4fe60eb1e4a789e460f3237954b5b7202c81110d Mon Sep 17 00:00:00 2001 From: Michael Terry Date: Mon, 18 Dec 2017 14:01:41 -0500 Subject: [PATCH] Show programs for expired entitlements The dashboard was not showing related programs for expired but fulfilled entitlements. LEARNER-3608 --- common/djangoapps/student/tests/test_views.py | 22 +++++++++++++++---- lms/templates/dashboard.html | 2 +- openedx/core/djangoapps/programs/utils.py | 1 - themes/edx.org/lms/templates/dashboard.html | 2 +- 4 files changed, 20 insertions(+), 7 deletions(-) diff --git a/common/djangoapps/student/tests/test_views.py b/common/djangoapps/student/tests/test_views.py index 933ce59cdd..f14c1a334d 100644 --- a/common/djangoapps/student/tests/test_views.py +++ b/common/djangoapps/student/tests/test_views.py @@ -395,16 +395,18 @@ class StudentDashboardTests(SharedModuleStoreTestCase, MilestonesTestCaseMixin): self.assertIn('You can no longer select a session', response.content) self.assertNotIn('
', response.content) + @patch('openedx.core.djangoapps.programs.utils.get_programs') @patch('student.views.get_course_runs_for_course') @patch.object(CourseOverview, 'get_from_id') @patch('opaque_keys.edx.keys.CourseKey.from_string') - def test_fulfilled_entitlement(self, mock_course_key, mock_course_overview, mock_course_runs): + def test_fulfilled_entitlement(self, mock_course_key, mock_course_overview, mock_course_runs, mock_get_programs): """ When a learner has a fulfilled entitlement, their course dashboard should have: - exactly one course item, meaning it: - has an entitlement card - does NOT have a course card referencing the selected session - an unhidden Change Session button + - a related programs message """ mocked_course_overview = CourseOverviewFactory( start=self.TOMORROW, self_paced=True, enrollment_end=self.TOMORROW @@ -420,20 +422,27 @@ class StudentDashboardTests(SharedModuleStoreTestCase, MilestonesTestCaseMixin): 'type': 'verified' } ] - CourseEntitlementFactory(user=self.user, enrollment_course_run=course_enrollment) + entitlement = CourseEntitlementFactory(user=self.user, enrollment_course_run=course_enrollment) + program = ProgramFactory() + program['courses'][0]['course_runs'] = [{'key': unicode(mocked_course_overview.id)}] + program['courses'][0]['uuid'] = entitlement.course_uuid + mock_get_programs.return_value = [program] response = self.client.get(self.path) self.assertEqual(response.content.count('
  • '), 1) self.assertIn('