def test_get_enrollments_including_inactive(self): """ Verify that if 'include_inactive' is True, all enrollments are returned including inactive. """ course_modes, course_numbers = ['honor', 'verified', 'audit'], ['1', '2', '3'] created_courses = [] for course_number in course_numbers: created_courses.append(CourseFactory.create(number=course_number)) created_enrollments = [] for course in created_courses: self._create_course_modes(course_modes, course=course) # Create the original enrollment. created_enrollments.append(data.create_course_enrollment( self.user.username, unicode(course.id), 'honor', True )) # deactivate one enrollment data.update_course_enrollment( self.user.username, unicode(created_courses[0].id), 'honor', False ) # by default in-active enrollment will be excluded. results = data.get_course_enrollments(self.user.username) self.assertNotEqual(len(results), len(created_enrollments)) # we can get all enrollments including inactive by passing "include_inactive" results = data.get_course_enrollments(self.user.username, include_inactive=True) self.assertEqual(len(results), len(created_enrollments))
def test_get_course_enrollments(self, course_modes, course_numbers): # Create all the courses created_courses = [] for course_number in course_numbers: created_courses.append(CourseFactory.create(number=course_number)) created_enrollments = [] for course in created_courses: self._create_course_modes(course_modes, course=course) # Create the original enrollment. created_enrollments.append(data.create_course_enrollment( self.user.username, unicode(course.id), 'honor', True )) # Compare the created enrollments with the results # from the get enrollments request. results = data.get_course_enrollments(self.user.username) self.assertEqual(results, created_enrollments) # Now create a course enrollment with some invalid course (does # not exist in database) for the user and check that the method # 'get_course_enrollments' ignores course enrollments for invalid # or deleted courses CourseEnrollment.objects.create( user=self.user, course_id='InvalidOrg/InvalidCourse/InvalidRun', mode='honor', is_active=True ) updated_results = data.get_course_enrollments(self.user.username) self.assertEqual(results, updated_results)
def test_get_enrollments_including_inactive(self): """ Verify that if 'include_inactive' is True, all enrollments are returned including inactive. """ course_modes, course_numbers = ['honor', 'verified', 'audit'], ['1', '2', '3'] created_courses = [] for course_number in course_numbers: created_courses.append(CourseFactory.create(number=course_number)) created_enrollments = [] for course in created_courses: self._create_course_modes(course_modes, course=course) # Create the original enrollment. created_enrollments.append( data.create_course_enrollment(self.user.username, unicode(course.id), 'honor', True)) # deactivate one enrollment data.update_course_enrollment(self.user.username, unicode(created_courses[0].id), 'honor', False) # by default in-active enrollment will be excluded. results = data.get_course_enrollments(self.user.username) self.assertNotEqual(len(results), len(created_enrollments)) # we can get all enrollments including inactive by passing "include_inactive" results = data.get_course_enrollments(self.user.username, include_inactive=True) self.assertEqual(len(results), len(created_enrollments))
def test_get_course_enrollments(self, course_modes, course_numbers): # Create all the courses created_courses = [] for course_number in course_numbers: created_courses.append(CourseFactory.create(number=course_number)) created_enrollments = [] for course in created_courses: self._create_course_modes(course_modes, course=course) # Create the original enrollment. created_enrollments.append( data.create_course_enrollment(self.user.username, unicode(course.id), 'honor', True)) # Compare the created enrollments with the results # from the get enrollments request. results = data.get_course_enrollments(self.user.username) self.assertEqual(results, created_enrollments) # Now create a course enrollment with some invalid course (does # not exist in database) for the user and check that the method # 'get_course_enrollments' ignores course enrollments for invalid # or deleted courses CourseEnrollment.objects.create( user=self.user, course_id='InvalidOrg/InvalidCourse/InvalidRun', mode='honor', is_active=True) updated_results = data.get_course_enrollments(self.user.username) self.assertEqual(results, updated_results)
def get(self, request): """ GET for endpoint api/enrollment/v1/edraak_course_list Accepts the following optional parameter: is_certificate_allowed is_certificate_available is_completed The API will use get_course_enrollments and filter-out records that do no match the criteria given in optional parameters list. Example: api/enrollment/v1/edraak_course_list?is_completed=true get all enrollments for current user, where courses are completed, regardless of certificate status """ try: enrollment_data = get_course_enrollments(request.user.username) except CourseEnrollmentError: return Response( status=status.HTTP_400_BAD_REQUEST, data={ "message": (u"An error occurred while retrieving enrollments for user '{username}'" ).format(username=request.user.username) }) filters = {} try: for parameter_name in ( 'is_certificate_allowed', 'is_certificate_available', 'is_completed', ): self._add_filter(filters=filters, request=request, parameter_name=parameter_name) except ValueError as error: return Response(status=status.HTTP_400_BAD_REQUEST, data={"message": six.text_type(error)}) final_data = [ enrollment for enrollment in enrollment_data if self._is_enrollment_match(filters, enrollment) ] return Response(final_data)
def test_get_course_enrollments(self, course_modes, course_numbers): # Create all the courses created_courses = [] for course_number in course_numbers: created_courses.append(CourseFactory.create(number=course_number)) created_enrollments = [] for course in created_courses: self._create_course_modes(course_modes, course=course) # Create the original enrollment. created_enrollments.append( data.create_course_enrollment(self.user.username, unicode(course.id), "honor", True) ) # Compare the created enrollments with the results # from the get enrollments request. results = data.get_course_enrollments(self.user.username) self.assertEqual(results, created_enrollments)
def test_get_course_enrollments(self, course_modes, course_numbers): # Create all the courses created_courses = [] for course_number in course_numbers: created_courses.append(CourseFactory.create(number=course_number)) created_enrollments = [] for course in created_courses: self._create_course_modes(course_modes, course=course) # Create the original enrollment. created_enrollments.append( data.create_course_enrollment(self.user.username, unicode(course.id), 'honor', True)) # Compare the created enrollments with the results # from the get enrollments request. results = data.get_course_enrollments(self.user.username) self.assertEqual(results, created_enrollments)