fix: Pass certificates values to generation, if available (#28179)
MICROBA-1373
This commit is contained in:
@@ -29,12 +29,17 @@ def generate_certificate(self, **kwargs): # pylint: disable=unused-argument
|
||||
- course_key: The course key for the course that the student is
|
||||
receiving a certificate in.
|
||||
- status: Certificate status (value from the CertificateStatuses model)
|
||||
- enrollment_mode: user's enrollment mode (ex. verified)
|
||||
- course_grade: user's course grade
|
||||
- generation_mode: Used when emitting an event. Options are "self" (implying the user generated the cert
|
||||
themself) and "batch" for everything else.
|
||||
"""
|
||||
student = User.objects.get(id=kwargs.pop('student'))
|
||||
course_key = CourseKey.from_string(kwargs.pop('course_key'))
|
||||
status = kwargs.pop('status', CertificateStatuses.downloadable)
|
||||
enrollment_mode = kwargs.pop('enrollment_mode', None)
|
||||
course_grade = kwargs.pop('course_grade', None)
|
||||
generation_mode = kwargs.pop('generation_mode', 'batch')
|
||||
|
||||
generate_course_certificate(user=student, course_key=course_key, status=status, generation_mode=generation_mode)
|
||||
generate_course_certificate(user=student, course_key=course_key, status=status, enrollment_mode=enrollment_mode,
|
||||
course_grade=course_grade, generation_mode=generation_mode)
|
||||
|
||||
@@ -10,6 +10,7 @@ import ddt
|
||||
from django.test import TestCase
|
||||
from opaque_keys.edx.keys import CourseKey
|
||||
|
||||
from common.djangoapps.course_modes.models import CourseMode
|
||||
from common.djangoapps.student.tests.factories import UserFactory
|
||||
from lms.djangoapps.certificates.data import CertificateStatuses
|
||||
from lms.djangoapps.certificates.tasks import generate_certificate
|
||||
@@ -54,6 +55,8 @@ class GenerateUserCertificateTest(TestCase):
|
||||
user=self.user,
|
||||
course_key=CourseKey.from_string(course_key),
|
||||
status=CertificateStatuses.downloadable,
|
||||
enrollment_mode=None,
|
||||
course_grade=None,
|
||||
generation_mode='batch'
|
||||
)
|
||||
|
||||
@@ -63,14 +66,20 @@ class GenerateUserCertificateTest(TestCase):
|
||||
"""
|
||||
course_key = 'course-v1:edX+DemoX+Demo_Course'
|
||||
gen_mode = 'self'
|
||||
status = CertificateStatuses.notpassing
|
||||
enrollment_mode = CourseMode.AUDIT
|
||||
course_grade = '0.89'
|
||||
|
||||
with mock.patch(
|
||||
'lms.djangoapps.certificates.tasks.generate_course_certificate',
|
||||
return_value=None
|
||||
) as mock_generate_cert:
|
||||
kwargs = {
|
||||
'status': status,
|
||||
'student': self.user.id,
|
||||
'course_key': course_key,
|
||||
'course_grade': course_grade,
|
||||
'enrollment_mode': enrollment_mode,
|
||||
'generation_mode': gen_mode,
|
||||
'what_about': 'dinosaurs'
|
||||
}
|
||||
@@ -79,6 +88,8 @@ class GenerateUserCertificateTest(TestCase):
|
||||
mock_generate_cert.assert_called_with(
|
||||
user=self.user,
|
||||
course_key=CourseKey.from_string(course_key),
|
||||
status=CertificateStatuses.downloadable,
|
||||
status=status,
|
||||
enrollment_mode=enrollment_mode,
|
||||
course_grade=course_grade,
|
||||
generation_mode=gen_mode
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user