def _invalidate_certificate(self, certificate): """ Dry method to mark certificate as invalid. """ CertificateInvalidationFactory.create( generated_certificate=certificate, invalidated_by=self.support, active=True) # Invalidate user certificate certificate.invalidate() assert not certificate.is_valid()
def _invalidate_certificate(self, certificate, active): """ Dry method to mark certificate as invalid. """ CertificateInvalidationFactory.create( generated_certificate=certificate, invalidated_by=self.global_staff, active=active) # Invalidate user certificate certificate.invalidate() self.assertFalse(certificate.is_valid())
def _invalidate_certificate(self, certificate, active): """ Dry method to mark certificate as invalid. """ CertificateInvalidationFactory.create( generated_certificate=certificate, invalidated_by=self.global_staff, active=active ) # Invalidate user certificate certificate.invalidate() self.assertFalse(certificate.is_valid())
def test_method_with_all_statues(self, status): """ Verify method return True if certificate has valid status but it is marked as invalid in CertificateInvalidation table. """ certificate = self._generate_cert(status) CertificateInvalidationFactory.create( generated_certificate=certificate, invalidated_by=self.global_staff, active=True) # Also check query count for 'is_certificate_invalid' method. with self.assertNumQueries(2): assert is_certificate_invalidated(self.student, self.course.id)
def test_method_with_all_statues(self, status): """ Verify method return True if certificate has valid status but it is marked as invalid in CertificateInvalidation table. """ certificate = self._generate_cert(status) CertificateInvalidationFactory.create( generated_certificate=certificate, invalidated_by=self.global_staff, active=True ) # Also check query count for 'is_certificate_invalid' method. with self.assertNumQueries(2): self.assertTrue( certs_api.is_certificate_invalid(self.student, self.course.id) )
def test_can_be_added_to_allowlist_certificate_invalidated(self): """ Test to verify that a learner will be rejected from the allowlist if they currently appear on the certificate invalidation list. """ certificate = GeneratedCertificateFactory.create( user=self.user, course_id=self.course_run_key, status=CertificateStatuses.unavailable, mode='verified') CertificateInvalidationFactory.create( generated_certificate=certificate, invalidated_by=self.global_staff, active=True) assert not can_be_added_to_allowlist(self.user, self.course_run_key)
def test_can_generate_invalidated(self): """ Test handling when user is on the invalidate list """ u = UserFactory() cr = CourseFactory() key = cr.id # pylint: disable=no-member CourseEnrollmentFactory( user=u, course_id=key, is_active=True, mode="verified", ) cert = GeneratedCertificateFactory( user=u, course_id=key, mode=GeneratedCertificate.MODES.verified, status=CertificateStatuses.downloadable) CertificateInvalidationFactory.create(generated_certificate=cert, invalidated_by=self.user, active=True) assert not _can_generate_v2_certificate(u, key)
def test_is_certificate_invalid_with_invalid_cert(self): """ Verify that method return true if certificate is invalid. """ invalid_cert = CertificateInvalidationFactory.create( generated_certificate=self.certificate, invalidated_by=self.user) # Invalidate user certificate self.certificate.invalidate() assert CertificateInvalidation.has_certificate_invalidation( self.user, self.course_id) # mark the entry as in-active. invalid_cert.active = False invalid_cert.save() # After making the certificate valid method will return false. assert not CertificateInvalidation.has_certificate_invalidation( self.user, self.course_id)
def test_get_certificate_invalidation_entry(self): """ Test to verify that we can retrieve a certificate invalidation entry for a learner. """ certificate = GeneratedCertificateFactory.create( user=self.user, course_id=self.course_run_key, status=CertificateStatuses.unavailable, mode='verified') invalidation = CertificateInvalidationFactory.create( generated_certificate=certificate, invalidated_by=self.global_staff, active=True) retrieved_invalidation = get_certificate_invalidation_entry( certificate) assert retrieved_invalidation.id == invalidation.id assert retrieved_invalidation.generated_certificate == certificate assert retrieved_invalidation.active == invalidation.active
def test_is_certificate_invalid_with_invalid_cert(self): """ Verify that method return true if certificate is invalid. """ invalid_cert = CertificateInvalidationFactory.create( generated_certificate=self.certificate, invalidated_by=self.user ) # Invalidate user certificate self.certificate.invalidate() self.assertTrue( CertificateInvalidation.has_certificate_invalidation(self.user, self.course_id) ) # mark the entry as in-active. invalid_cert.active = False invalid_cert.save() # After making the certificate valid method will return false. self.assertFalse( CertificateInvalidation.has_certificate_invalidation(self.user, self.course_id) )