Skip to content
Snippets Groups Projects
Commit c79518d8 authored by Bianca Severino's avatar Bianca Severino
Browse files

fix: use course overviews instead of modulestore in enrollments service

parent c190616e
No related branches found
No related tags found
No related merge requests found
......@@ -10,7 +10,7 @@ from django.db.models import Q
from opaque_keys.edx.keys import CourseKey
from common.djangoapps.course_modes.models import CourseMode
from common.djangoapps.student.models import CourseEnrollment
from xmodule.modulestore.django import modulestore
from openedx.core.djangoapps.content.course_overviews.api import get_course_overview_or_none
class EnrollmentsService:
......@@ -68,12 +68,12 @@ class EnrollmentsService:
* text_search: the string against which to do a match on users' username or email; optional
"""
course_id_coursekey = CourseKey.from_string(course_id)
course_module = modulestore().get_course(course_id_coursekey)
if not course_module or not course_module.enable_proctored_exams:
course_overview = get_course_overview_or_none(course_id_coursekey)
if not course_overview or not course_overview.enable_proctored_exams:
return None
allow_honor_mode = settings.PROCTORING_BACKENDS.get(
course_module.proctoring_provider, {}
course_overview.proctoring_provider, {}
).get('allow_honor_mode', False)
enrollments = self._get_enrollments_for_course_proctoring_eligible_modes(course_id, allow_honor_mode)
......
......@@ -7,9 +7,9 @@ from common.djangoapps.course_modes.models import CourseMode
from common.djangoapps.course_modes.tests.factories import CourseModeFactory
from common.djangoapps.student.models import CourseEnrollment
from common.djangoapps.student.tests.factories import UserFactory
from openedx.core.djangoapps.content.course_overviews.tests.factories import CourseOverviewFactory
from openedx.core.djangoapps.enrollments.services import EnrollmentsService
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
from xmodule.modulestore.tests.factories import CourseFactory
@ddt.ddt
......@@ -28,7 +28,7 @@ class EnrollmentsServiceTests(ModuleStoreTestCase):
CourseMode.PROFESSIONAL,
CourseMode.VERIFIED
]
self.course = CourseFactory.create(enable_proctored_exams=True)
self.course = CourseOverviewFactory.create(enable_proctored_exams=True)
for index in range(len(self.course_modes)):
course_mode = self.course_modes[index]
......@@ -74,7 +74,7 @@ class EnrollmentsServiceTests(ModuleStoreTestCase):
"""
Test that an empty list is returned if a course has no enrollments
"""
course = CourseFactory.create(enable_proctored_exams=True)
course = CourseOverviewFactory.create(enable_proctored_exams=True)
enrollments = self.service.get_enrollments_can_take_proctored_exams(str(course.id)) # pylint: disable=no-member
......@@ -82,7 +82,7 @@ class EnrollmentsServiceTests(ModuleStoreTestCase):
def test_get_enrollments_can_take_proctored_exams_allow_honor(self):
self.course.proctoring_provider = 'test'
self.store.update_item(self.course, self.user.id)
self.course.save()
mock_proctoring_backend = {
'test': {
......@@ -104,7 +104,7 @@ class EnrollmentsServiceTests(ModuleStoreTestCase):
def test_get_enrollments_can_take_proctored_exams_not_enable_proctored_exams(self):
self.course.enable_proctored_exams = False
self.store.update_item(self.course, self.user.id)
self.course.save()
enrollments = self.service.get_enrollments_can_take_proctored_exams(str(self.course.id))
......@@ -170,7 +170,7 @@ class EnrollmentsServicePerformanceTests(ModuleStoreTestCase):
def setUp(self):
super().setUp()
self.service = EnrollmentsService()
self.course = CourseFactory.create(enable_proctored_exams=True)
self.course = CourseOverviewFactory.create(enable_proctored_exams=True)
self.course_modes = [
CourseMode.AUDIT,
CourseMode.EXECUTIVE_EDUCATION,
......
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