Add a test
This commit is contained in:
@@ -207,6 +207,43 @@ class CourseEnrollmentTests(SharedModuleStoreTestCase):
|
||||
self.assertIsNotNone(enrollment.schedule)
|
||||
self.assertIsNone(enrollment.upgrade_deadline)
|
||||
|
||||
@skip_unless_lms
|
||||
# NOTE: We mute the post_save signal to prevent Schedules from being created for new enrollments
|
||||
@factory.django.mute_signals(signals.post_save)
|
||||
def test_enrollments_not_deleted(self):
|
||||
""" Recreating a CourseOverview with an outdated version should not delete the associated enrollment. """
|
||||
course = CourseFactory(self_paced=True)
|
||||
CourseModeFactory(
|
||||
course_id=course.id,
|
||||
mode_slug=CourseMode.VERIFIED,
|
||||
# This must be in the future to ensure it is returned by downstream code.
|
||||
expiration_datetime=datetime.datetime.now(pytz.UTC) + datetime.timedelta(days=30),
|
||||
)
|
||||
|
||||
# Create a CourseOverview with an outdated version
|
||||
course_overview = CourseOverview.load_from_module_store(course.id)
|
||||
course_overview.version = CourseOverview.VERSION - 1
|
||||
course_overview.save()
|
||||
|
||||
# Create an inactive enrollment with this course overview
|
||||
enrollment = CourseEnrollmentFactory(
|
||||
user=self.user,
|
||||
course_id=course.id,
|
||||
mode=CourseMode.AUDIT,
|
||||
course=course_overview,
|
||||
)
|
||||
|
||||
# Re-fetch the CourseOverview record, which as a side effect,
|
||||
# will recreate the record to update the version.
|
||||
course_overview_new = CourseOverview.get_from_id(course.id)
|
||||
assert(course_overview_new.version == CourseOverview.VERSION)
|
||||
assert(course_overview_new.id != course_overview.id)
|
||||
|
||||
# Ensure that the enrollment record was not deleted during this re-creation
|
||||
enrollment_refetched = CourseEnrollment.objects.filter(id=enrollment.id)
|
||||
assert(enrollment_refetched.exists())
|
||||
assert(enrollment_refetched.all()[0] == enrollment)
|
||||
|
||||
|
||||
class PendingNameChangeTests(SharedModuleStoreTestCase):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user