Skip to content
Snippets Groups Projects
Commit 7a63af92 authored by Jillian Vogel's avatar Jillian Vogel
Browse files

Add a test

parent 84eefa0e
No related merge requests found
......@@ -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):
"""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment