def test_duplicate_certificate_invalidation_error(self): """ Test error message if certificate invalidation for the student is already present. """ CertificateInvalidationFactory.create( generated_certificate=self.generated_certificate, invalidated_by=self.global_staff, ) # Invalidate user certificate self.generated_certificate.invalidate() response = self.client.post( self.url, data=json.dumps(self.certificate_invalidation_data), content_type='application/json', ) # Assert 400 status code in response self.assertEqual(response.status_code, 400) res_json = json.loads(response.content) # Assert Error Message self.assertEqual( res_json['message'], u"Certificate of {user} has already been invalidated. Please check your spelling and retry.".format( user=self.enrolled_user_1.username, ), )
def test_remove_certificate_invalidation(self): """ Test that user can remove certificate invalidation. """ # Invalidate user certificate self.generated_certificate.invalidate() CertificateInvalidationFactory.create( generated_certificate=self.generated_certificate, invalidated_by=self.global_staff, ) response = self.client.post( self.url, data=json.dumps(self.certificate_invalidation_data), content_type='application/json', REQUEST_METHOD='DELETE' ) # Assert 204 status code in response self.assertEqual(response.status_code, 204) # Verify that certificate invalidation successfully removed from database with self.assertRaises(ObjectDoesNotExist): CertificateInvalidation.objects.get( generated_certificate=self.generated_certificate, invalidated_by=self.global_staff, active=True, )
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): self.assertTrue( certs_api.is_certificate_invalid(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_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))
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))