fix: Temporarily disable generating certificates with a non-downloadable status (#28000)
CR-3792 MICROBA-1306
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user