diff --git a/lms/djangoapps/certificates/generation_handler.py b/lms/djangoapps/certificates/generation_handler.py index 4757b01718..a46207450a 100644 --- a/lms/djangoapps/certificates/generation_handler.py +++ b/lms/djangoapps/certificates/generation_handler.py @@ -95,9 +95,9 @@ def generate_allowlist_certificate_task(user, course_key, generation_mode=None): if _can_generate_allowlist_certificate(user, course_key): return _generate_certificate_task(user, course_key, generation_mode) - status = _set_allowlist_cert_status(user, course_key) - if status is not None: - return True +# status = _set_allowlist_cert_status(user, course_key) +# if status is not None: +# return True return False @@ -110,9 +110,9 @@ def generate_regular_certificate_task(user, course_key, generation_mode=None): if _can_generate_v2_certificate(user, course_key): return _generate_certificate_task(user, course_key, generation_mode) - status = _set_v2_cert_status(user, course_key) - if status is not None: - return True +# status = _set_v2_cert_status(user, course_key) +# if status is not None: +# return True return False diff --git a/lms/djangoapps/certificates/tests/test_api.py b/lms/djangoapps/certificates/tests/test_api.py index 456f3dc745..ee84de3c22 100644 --- a/lms/djangoapps/certificates/tests/test_api.py +++ b/lms/djangoapps/certificates/tests/test_api.py @@ -4,6 +4,7 @@ import uuid from contextlib import contextmanager from datetime import datetime, timedelta +from unittest import mock from unittest.mock import patch import ddt @@ -71,6 +72,7 @@ from lms.djangoapps.grades.tests.utils import mock_passing_grade from openedx.core.djangoapps.content.course_overviews.tests.factories import CourseOverviewFactory from openedx.core.djangoapps.site_configuration.tests.test_util import with_site_configuration +CAN_GENERATE_METHOD = 'lms.djangoapps.certificates.generation_handler._can_generate_v2_certificate' FEATURES_WITH_CERTS_ENABLED = settings.FEATURES.copy() FEATURES_WITH_CERTS_ENABLED['CERTIFICATES_HTML_VIEW'] = True @@ -550,6 +552,7 @@ class GenerateUserCertificatesTest(EventTestMixin, WebCertificateTestMixin, Modu self.enrollment = CourseEnrollment.enroll(self.student, self.course.id, mode='honor') self.request_factory = RequestFactory() + @mock.patch(CAN_GENERATE_METHOD, mock.Mock(return_value=True)) @patch.dict(settings.FEATURES, {'CERTIFICATES_HTML_VIEW': True}) def test_new_cert_request_for_html_certificate(self): """ @@ -560,7 +563,7 @@ class GenerateUserCertificatesTest(EventTestMixin, WebCertificateTestMixin, Modu generate_user_certificates(self.student, self.course.id) cert = GeneratedCertificate.eligible_certificates.get(user=self.student, course_id=self.course.id) - assert cert.status == CertificateStatuses.unverified + assert cert.status == CertificateStatuses.downloadable @patch.dict(settings.FEATURES, {'CERTIFICATES_HTML_VIEW': False}) def test_cert_url_empty_with_invalid_certificate(self): diff --git a/lms/djangoapps/certificates/tests/test_generation_handler.py b/lms/djangoapps/certificates/tests/test_generation_handler.py index 9336fe5953..fecb341d2e 100644 --- a/lms/djangoapps/certificates/tests/test_generation_handler.py +++ b/lms/djangoapps/certificates/tests/test_generation_handler.py @@ -323,6 +323,36 @@ class CertificateTests(ModuleStoreTestCase): assert not generate_certificate_task(other_user, self.course_run_key) assert not generate_regular_certificate_task(other_user, self.course_run_key) + def test_handle_audit_status(self): + """ + Test handling of a user who is not passing and is enrolled in audit mode + """ + different_user = UserFactory() + CourseEnrollmentFactory( + user=different_user, + course_id=self.course_run_key, + is_active=True, + mode=GeneratedCertificate.MODES.audit, + ) + + assert _set_v2_cert_status(different_user, self.course_run_key) is None + assert not generate_regular_certificate_task(different_user, self.course_run_key) + + def test_handle_verified_status(self): + """ + Test handling of a user who is not passing and is enrolled in verified mode + """ + different_user = UserFactory() + CourseEnrollmentFactory( + user=different_user, + course_id=self.course_run_key, + is_active=True, + mode=GeneratedCertificate.MODES.verified, + ) + + assert _set_v2_cert_status(different_user, self.course_run_key) == 'notpassing' + assert generate_regular_certificate_task(different_user, self.course_run_key) + def test_is_using_updated_true(self): """ Test the updated flag diff --git a/lms/djangoapps/instructor_task/tests/test_tasks_helper.py b/lms/djangoapps/instructor_task/tests/test_tasks_helper.py index e5a62ed18e..dcb54baebf 100644 --- a/lms/djangoapps/instructor_task/tests/test_tasks_helper.py +++ b/lms/djangoapps/instructor_task/tests/test_tasks_helper.py @@ -2087,7 +2087,7 @@ class TestCertificateGeneration(InstructorTaskModuleTestCase): 'failed': 0, 'skipped': 2 } - with self.assertNumQueries(74): + with self.assertNumQueries(55): self.assertCertificatesGenerated(task_input, expected_results) @ddt.data(