示例#1
0
 def test_cert_already_generated(self):
     with mock.patch(
             'lms.djangoapps.certificates.signals.generate_certificate.apply_async',
             return_value=None) as mock_generate_certificate_apply_async:
         grade_factory = CourseGradeFactory()
         # Create the certificate
         GeneratedCertificate.eligible_certificates.create(
             user=self.user,
             course_id=self.course.id,
             status=CertificateStatuses.downloadable)
         # Certs are not re-fired after passing
         with mock_passing_grade():
             grade_factory.update(self.user, self.course)
             mock_generate_certificate_apply_async.assert_not_called()
示例#2
0
 def test_cert_generation_on_passing_self_paced(self):
     with mock.patch(
             'lms.djangoapps.certificates.signals.generate_certificate.apply_async',
             return_value=None) as mock_generate_certificate_apply_async:
         with waffle.waffle().override(waffle.SELF_PACED_ONLY, active=True):
             grade_factory = CourseGradeFactory()
             # Not passing
             grade_factory.update(self.user, self.course)
             mock_generate_certificate_apply_async.assert_not_called()
             # Certs fired after passing
             with mock_passing_grade():
                 grade_factory.update(self.user, self.course)
                 mock_generate_certificate_apply_async.assert_called_with(
                     student=self.user, course_key=self.course.id)
示例#3
0
    def test_cert_generation_on_photo_verification_self_paced(self):
        with mock.patch(
                'lms.djangoapps.certificates.signals.generate_certificate.apply_async',
                return_value=None) as mock_generate_certificate_apply_async:
            with mock_passing_grade():
                grade_factory = CourseGradeFactory()
                grade_factory.update(self.user_one, self.course_one)

            with waffle.waffle().override(waffle.SELF_PACED_ONLY, active=True):
                mock_generate_certificate_apply_async.assert_not_called()
                attempt = SoftwareSecurePhotoVerification.objects.create(
                    user=self.user_one, status='submitted')
                attempt.approve()
                mock_generate_certificate_apply_async.assert_called_with(
                    student=self.user_one, course_key=self.course_one.id)
示例#4
0
 def test_cert_generation_on_passing_instructor_paced(self):
     with mock.patch(
             'lms.djangoapps.certificates.signals.generate_certificate.apply_async',
             return_value=None) as mock_generate_certificate_apply_async:
         with waffle.waffle().override(waffle.INSTRUCTOR_PACED_ONLY,
                                       active=True):
             grade_factory = CourseGradeFactory()
             # Not passing
             grade_factory.update(self.user, self.ip_course)
             mock_generate_certificate_apply_async.assert_not_called()
             # Certs fired after passing
             with mock_passing_grade():
                 grade_factory.update(self.user, self.ip_course)
                 mock_generate_certificate_apply_async.assert_called_with(
                     kwargs={
                         'student': unicode(self.user.id),
                         'course_key': unicode(self.ip_course.id),
                     })
示例#5
0
 def test_cert_generation_on_passing_instructor_paced(self):
     with mock.patch(
             'lms.djangoapps.certificates.signals.generate_certificate.apply_async',
             return_value=None) as mock_generate_certificate_apply_async:
         with waffle.waffle().override(waffle.AUTO_CERTIFICATE_GENERATION,
                                       active=True):
             grade_factory = CourseGradeFactory()
             # Not passing
             grade_factory.update(self.user, self.ip_course)
             mock_generate_certificate_apply_async.assert_not_called()
             # Certs fired after passing
             with mock_passing_grade():
                 grade_factory.update(self.user, self.ip_course)
                 mock_generate_certificate_apply_async.assert_called_with(
                     countdown=CERTIFICATE_DELAY_SECONDS,
                     kwargs={
                         'student': unicode(self.user.id),
                         'course_key': unicode(self.ip_course.id),
                     })
示例#6
0
 def setUp(self):
     super(LearnerTrackChangeCertsTest, self).setUp()
     self.course_one = CourseFactory.create(self_paced=True)
     self.user_one = UserFactory.create()
     self.enrollment_one = CourseEnrollmentFactory(
         user=self.user_one,
         course_id=self.course_one.id,
         is_active=True,
         mode='verified',
     )
     self.user_two = UserFactory.create()
     self.course_two = CourseFactory.create(self_paced=False)
     self.enrollment_two = CourseEnrollmentFactory(
         user=self.user_two,
         course_id=self.course_two.id,
         is_active=True,
         mode='verified')
     with mock_passing_grade():
         grade_factory = CourseGradeFactory()
         grade_factory.update(self.user_one, self.course_one)
         grade_factory.update(self.user_two, self.course_two)
 def test_cert_generation_on_passing_instructor_paced(self):
     with mock.patch(
         'lms.djangoapps.certificates.signals.generate_certificate.apply_async',
         return_value=None
     ) as mock_generate_certificate_apply_async:
         with waffle.waffle().override(waffle.INSTRUCTOR_PACED_ONLY, active=True):
             grade_factory = CourseGradeFactory()
             with mock_get_score(0, 2):
                 grade_factory.update(self.user, self.ip_course)
                 mock_generate_certificate_apply_async.assert_not_called(
                     student=self.user,
                     course_key=self.ip_course.id
                 )
             with mock_get_score(1, 2):
                 grade_factory.update(self.user, self.ip_course)
                 mock_generate_certificate_apply_async.assert_called(
                     student=self.user,
                     course_key=self.ip_course.id
                 )
             # Certs are not re-fired after passing
             with mock_get_score(2, 2):
                 grade_factory.update(self.user, self.ip_course)
                 mock_generate_certificate_apply_async.assert_not_called(
                     student=self.user,
                     course_key=self.ip_course.id
                 )
示例#8
0
 def test_cert_generation_on_passing_instructor_paced(self):
     with mock.patch(
             'lms.djangoapps.certificates.signals.generate_certificate.apply_async',
             return_value=None) as mock_generate_certificate_apply_async:
         with waffle.waffle().override(waffle.INSTRUCTOR_PACED_ONLY,
                                       active=True):
             grade_factory = CourseGradeFactory()
             with mock_get_score(0, 2):
                 grade_factory.update(self.user, self.ip_course)
                 mock_generate_certificate_apply_async.assert_not_called(
                     student=self.user, course_key=self.ip_course.id)
             with mock_get_score(1, 2):
                 grade_factory.update(self.user, self.ip_course)
                 mock_generate_certificate_apply_async.assert_called(
                     student=self.user, course_key=self.ip_course.id)
             # Certs are not re-fired after passing
             with mock_get_score(2, 2):
                 grade_factory.update(self.user, self.ip_course)
                 mock_generate_certificate_apply_async.assert_not_called(
                     student=self.user, course_key=self.ip_course.id)