def test_update_cached_enrollment(self, mocked_index):
"""Test for update_cached_enrollment"""
course_id = list(self.enrollment_ids)[0]
enrollment = self.enrollments.get_enrollment_for_course(course_id)
self.assert_cache_in_db()
# normal update that creates also the entry
CachedEdxDataApi.update_cached_enrollment(self.user, enrollment, course_id, False)
self.assert_cache_in_db(enrollment_keys=[course_id])
cached_enr = CachedEnrollment.objects.get(user=self.user, course_run__edx_course_key=course_id)
assert cached_enr.data == enrollment.json
assert mocked_index.delay.called is False
# update of different data with indexing
enr_json = {
"course_details": {
"course_id": course_id,
},
"is_active": True,
"mode": "verified",
"user": self.user.username
}
enrollment_new = Enrollment(enr_json)
CachedEdxDataApi.update_cached_enrollment(self.user, enrollment_new, course_id, True)
self.assert_cache_in_db(enrollment_keys=[course_id])
cached_enr.refresh_from_db()
assert cached_enr.data == enr_json
mocked_index.delay.assert_any_call([self.user.id], check_if_changed=True)
评论列表
文章目录