diff --git a/lms/djangoapps/certificates/queue.py b/lms/djangoapps/certificates/queue.py index 0e08d1678e..76f9203a1c 100644 --- a/lms/djangoapps/certificates/queue.py +++ b/lms/djangoapps/certificates/queue.py @@ -279,7 +279,7 @@ class XQueueCertInterface(object): if forced_grade: grade['grade'] = forced_grade - cert, created = GeneratedCertificate.eligible_certificates.get_or_create(user=student, course_id=course_id) + cert, __ = GeneratedCertificate.eligible_certificates.get_or_create(user=student, course_id=course_id) cert.mode = cert_mode cert.user = student @@ -290,9 +290,8 @@ class XQueueCertInterface(object): # If this user's enrollment is not eligible to receive a # certificate, mark it as such for reporting and - # analytics. Only do this if the certificate is new -- we - # don't want to mark existing audit certs as ineligible. - if created and not is_eligible_for_certificate: + # analytics. + if not is_eligible_for_certificate: cert.eligible_for_certificate = False cert.status = CertificateStatuses.auditing cert.save() diff --git a/lms/djangoapps/certificates/tests/test_queue.py b/lms/djangoapps/certificates/tests/test_queue.py index cdab93c567..b3546e4912 100644 --- a/lms/djangoapps/certificates/tests/test_queue.py +++ b/lms/djangoapps/certificates/tests/test_queue.py @@ -30,7 +30,7 @@ from certificates.models import ( CertificateStatuses, ) from certificates.queue import XQueueCertInterface -from certificates.tests.factories import CertificateWhitelistFactory, GeneratedCertificateFactory +from certificates.tests.factories import CertificateWhitelistFactory from lms.djangoapps.verify_student.tests.factories import SoftwareSecurePhotoVerificationFactory @@ -205,37 +205,6 @@ class XQueueCertInterfaceAddCertificateTest(ModuleStoreTestCase): else: self.assertFalse(mock_send.called) - def test_old_audit_cert_eligible(self): - """ - Test that existing audit certificates remain eligible even if cert - generation is re-run. - """ - # Create an existing audit enrollment and certificate - CourseEnrollmentFactory( - user=self.user_2, - course_id=self.course.id, - is_active=True, - mode=CourseMode.AUDIT, - ) - GeneratedCertificateFactory( - user=self.user_2, - course_id=self.course.id, - grade='1.0', - status=CertificateStatuses.downloadable, - mode=GeneratedCertificate.MODES.audit, - eligible_for_certificate=True, - ) - - # Run grading/cert generation again - with patch('courseware.grades.grade', Mock(return_value={'grade': 'Pass', 'percent': 0.75})): - with patch.object(XQueueInterface, 'send_to_queue') as mock_send: - mock_send.return_value = (0, None) - self.xqueue.add_cert(self.user_2, self.course.id) - - self.assertTrue( - GeneratedCertificate.objects.get(user=self.user_2, course_id=self.course.id).eligible_for_certificate # pylint: disable=no-member - ) - @attr('shard_1') @override_settings(CERT_QUEUE='certificates')