diff --git a/lms/lms/doctype/lms_certificate/test_lms_certificate.py b/lms/lms/doctype/lms_certificate/test_lms_certificate.py index ba601a20..81cf129b 100644 --- a/lms/lms/doctype/lms_certificate/test_lms_certificate.py +++ b/lms/lms/doctype/lms_certificate/test_lms_certificate.py @@ -4,7 +4,7 @@ import unittest import frappe -from frappe.utils import add_years, cint, nowdate +from frappe.utils import cint, nowdate from lms.lms.doctype.lms_certificate.lms_certificate import create_certificate from lms.lms.doctype.lms_course.test_lms_course import new_course @@ -18,6 +18,7 @@ class TestLMSCertificate(unittest.TestCase): "enable_certification": 1, }, ) + create_enrollment(course.name) certificate = create_certificate(course.name) self.assertEqual(certificate.member, "Administrator") @@ -26,3 +27,11 @@ class TestLMSCertificate(unittest.TestCase): frappe.db.delete("LMS Certificate", certificate.name) frappe.db.delete("LMS Course", course.name) + + +def create_enrollment(course): + enrollment = frappe.new_doc("LMS Enrollment") + enrollment.course = course + enrollment.member = frappe.session.user + enrollment.progress = cint(100) + enrollment.save() diff --git a/lms/lms/doctype/lms_course/test_lms_course.py b/lms/lms/doctype/lms_course/test_lms_course.py index bb76b389..d3862e6b 100644 --- a/lms/lms/doctype/lms_course/test_lms_course.py +++ b/lms/lms/doctype/lms_course/test_lms_course.py @@ -30,6 +30,7 @@ class TestLMSCourse(unittest.TestCase): frappe.delete_doc("User", "tester@example.com") if frappe.db.exists("LMS Course", "test-course"): + frappe.db.delete("Batch Course", {"course": "test-course"}) frappe.db.delete("Exercise Submission", {"course": "test-course"}) frappe.db.delete("Exercise Latest Submission", {"course": "test-course"}) frappe.db.delete("LMS Exercise", {"course": "test-course"}) diff --git a/lms/lms/utils.py b/lms/lms/utils.py index 73d89cba..19512fd9 100644 --- a/lms/lms/utils.py +++ b/lms/lms/utils.py @@ -2204,12 +2204,7 @@ def get_program_details(program_name): @frappe.whitelist() def enroll_in_program(program): - if frappe.session.user == "Guest": - frappe.throw(_("Please login to enroll in the program.")) - - published = frappe.db.get_value("LMS Program", program, "published") - if not published: - frappe.throw(_("You cannot enroll in an unpublished program.")) + validate_program_enrollment(program) if not frappe.db.exists("LMS Program Member", {"parent": program, "member": frappe.session.user}): program_member = frappe.new_doc("LMS Program Member") @@ -2224,6 +2219,15 @@ def enroll_in_program(program): program_member.save(ignore_permissions=True) +def validate_program_enrollment(program): + if frappe.session.user == "Guest": + frappe.throw(_("Please login to enroll in the program.")) + + published = frappe.db.get_value("LMS Program", program, "published") + if not published: + frappe.throw(_("You cannot enroll in an unpublished program.")) + + @frappe.whitelist(allow_guest=True) @rate_limit(limit=500, seconds=60 * 60) def get_batches(filters=None, start=0, order_by="start_date"):