Update for split modulestore as default.
This commit is contained in:
@@ -10,13 +10,11 @@ from student.roles import GlobalStaff
|
||||
from xmodule.modulestore import ModuleStoreEnum
|
||||
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
|
||||
from xmodule.modulestore.tests.factories import CourseFactory
|
||||
from opaque_keys.edx.locations import SlashSeparatedCourseKey
|
||||
from xmodule.modulestore.django import modulestore
|
||||
from xmodule.error_module import ErrorDescriptor
|
||||
from django.test.client import Client
|
||||
from student.models import CourseEnrollment
|
||||
from student.views import get_course_enrollment_pairs
|
||||
from opaque_keys.edx.keys import CourseKey
|
||||
from util.milestones_helpers import (
|
||||
get_pre_requisite_courses_not_completed,
|
||||
set_prerequisite_courses,
|
||||
@@ -42,7 +40,7 @@ class TestCourseListing(ModuleStoreTestCase):
|
||||
self.client = Client()
|
||||
self.client.login(username=self.teacher.username, password='test')
|
||||
|
||||
def _create_course_with_access_groups(self, course_location, metadata=None):
|
||||
def _create_course_with_access_groups(self, course_location, metadata=None, default_store=None):
|
||||
"""
|
||||
Create dummy course with 'CourseFactory' and enroll the student
|
||||
"""
|
||||
@@ -51,7 +49,8 @@ class TestCourseListing(ModuleStoreTestCase):
|
||||
org=course_location.org,
|
||||
number=course_location.course,
|
||||
run=course_location.run,
|
||||
metadata=metadata
|
||||
metadata=metadata,
|
||||
default_store=default_store
|
||||
)
|
||||
|
||||
CourseEnrollment.enroll(self.student, course.id)
|
||||
@@ -70,7 +69,7 @@ class TestCourseListing(ModuleStoreTestCase):
|
||||
"""
|
||||
Test getting courses
|
||||
"""
|
||||
course_location = SlashSeparatedCourseKey('Org1', 'Course1', 'Run1')
|
||||
course_location = self.store.make_course_key('Org1', 'Course1', 'Run1')
|
||||
self._create_course_with_access_groups(course_location)
|
||||
|
||||
# get dashboard
|
||||
@@ -87,8 +86,10 @@ class TestCourseListing(ModuleStoreTestCase):
|
||||
"""
|
||||
Test the course list for regular staff when get_course returns an ErrorDescriptor
|
||||
"""
|
||||
course_key = SlashSeparatedCourseKey('Org1', 'Course1', 'Run1')
|
||||
self._create_course_with_access_groups(course_key)
|
||||
# pylint: disable=protected-access
|
||||
mongo_store = modulestore()._get_modulestore_by_type(ModuleStoreEnum.Type.mongo)
|
||||
course_key = mongo_store.make_course_key('Org1', 'Course1', 'Run1')
|
||||
self._create_course_with_access_groups(course_key, default_store=ModuleStoreEnum.Type.mongo)
|
||||
|
||||
with patch('xmodule.modulestore.mongo.base.MongoKeyValueStore', Mock(side_effect=Exception)):
|
||||
self.assertIsInstance(modulestore().get_course(course_key), ErrorDescriptor)
|
||||
@@ -104,15 +105,15 @@ class TestCourseListing(ModuleStoreTestCase):
|
||||
"""
|
||||
mongo_store = modulestore()._get_modulestore_by_type(ModuleStoreEnum.Type.mongo)
|
||||
|
||||
good_location = SlashSeparatedCourseKey('testOrg', 'testCourse', 'RunBabyRun')
|
||||
self._create_course_with_access_groups(good_location)
|
||||
good_location = mongo_store.make_course_key('testOrg', 'testCourse', 'RunBabyRun')
|
||||
self._create_course_with_access_groups(good_location, default_store=ModuleStoreEnum.Type.mongo)
|
||||
|
||||
course_location = SlashSeparatedCourseKey('testOrg', 'doomedCourse', 'RunBabyRun')
|
||||
self._create_course_with_access_groups(course_location)
|
||||
course_location = mongo_store.make_course_key('testOrg', 'doomedCourse', 'RunBabyRun')
|
||||
self._create_course_with_access_groups(course_location, default_store=ModuleStoreEnum.Type.mongo)
|
||||
mongo_store.delete_course(course_location, ModuleStoreEnum.UserID.test)
|
||||
|
||||
course_location = SlashSeparatedCourseKey('testOrg', 'erroredCourse', 'RunBabyRun')
|
||||
course = self._create_course_with_access_groups(course_location)
|
||||
course_location = mongo_store.make_course_key('testOrg', 'erroredCourse', 'RunBabyRun')
|
||||
course = self._create_course_with_access_groups(course_location, default_store=ModuleStoreEnum.Type.mongo)
|
||||
course_db_record = mongo_store._find_one(course.location)
|
||||
course_db_record.setdefault('metadata', {}).get('tabs', []).append({
|
||||
"type": "wiko",
|
||||
@@ -137,18 +138,18 @@ class TestCourseListing(ModuleStoreTestCase):
|
||||
Checks course where pre-requisite course is set has appropriate info.
|
||||
"""
|
||||
seed_milestone_relationship_types()
|
||||
course_location2 = CourseKey.from_string('Org1/Course2/Run2')
|
||||
course_location2 = self.store.make_course_key('Org1', 'Course2', 'Run2')
|
||||
self._create_course_with_access_groups(course_location2)
|
||||
pre_requisite_course_location = CourseKey.from_string('Org1/Course3/Run3')
|
||||
pre_requisite_course_location = self.store.make_course_key('Org1', 'Course3', 'Run3')
|
||||
self._create_course_with_access_groups(pre_requisite_course_location)
|
||||
pre_requisite_course_location2 = CourseKey.from_string('Org1/Course4/Run4')
|
||||
pre_requisite_course_location2 = self.store.make_course_key('Org1', 'Course4', 'Run4')
|
||||
self._create_course_with_access_groups(pre_requisite_course_location2)
|
||||
# create a course with pre_requisite_courses
|
||||
pre_requisite_courses = [
|
||||
unicode(pre_requisite_course_location),
|
||||
unicode(pre_requisite_course_location2),
|
||||
]
|
||||
course_location = CourseKey.from_string('Org1/Course1/Run1')
|
||||
course_location = self.store.make_course_key('Org1', 'Course1', 'Run1')
|
||||
self._create_course_with_access_groups(course_location, {
|
||||
'pre_requisite_courses': pre_requisite_courses
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user