def get_enrollment_overviews(user, program, enrollments, request): """ Get a list of overviews for a user's course run enrollments within a program. Arguments: user (User) program (dict) enrollments (iterable[CourseEnrollment]) request (HttpRequest): Source HTTP request. Needed for URL generation. Returns list[dict] """ overviews_by_course_key = { enrollment.course.id: enrollment.course for enrollment in enrollments } course_keys = list(overviews_by_course_key.keys()) certficates_by_course_key = get_certificates_for_user_by_course_keys( user, course_keys) resume_urls_by_course_key = get_resume_urls_for_enrollments( user, enrollments) return [ get_single_enrollment_overview( user=user, program=program, course_overview=overviews_by_course_key[enrollment.course_id], certificate_info=certficates_by_course_key.get( enrollment.course_id, {}), relative_resume_url=resume_urls_by_course_key.get( enrollment.course_id), request=request, ) for enrollment in enrollments ]
def test_get_certificates_for_user_by_course_keys(self): """ Test to get certificates for a user for certain course keys, in a dictionary indexed by those course keys. """ certs = certs_api.get_certificates_for_user_by_course_keys( user=self.student, course_keys={self.web_cert_course.id, self.no_cert_course.id}, ) assert set(certs.keys()) == {self.web_cert_course.id} cert = certs[self.web_cert_course.id] self.assertEqual(cert['username'], self.student.username) self.assertEqual(cert['course_key'], self.web_cert_course.id) self.assertEqual(cert['download_url'], 'www.google.com')