Make it branch agnostic

LMS-11210

Conflicts:
	common/lib/xmodule/xmodule/modulestore/split_mongo/split_draft.py
This commit is contained in:
Don Mitchell
2014-08-14 10:27:10 -04:00
parent 2c366427bc
commit 3c3a316f08
9 changed files with 98 additions and 83 deletions

View File

@@ -28,14 +28,14 @@ class CloneCourseTest(CourseTestCase):
# 3. clone course (mongo -> split)
with self.store.default_store(ModuleStoreEnum.Type.split):
split_course3_id = CourseLocator(
org="edx3", course="split3", run="2013_Fall", branch=ModuleStoreEnum.BranchName.draft
org="edx3", course="split3", run="2013_Fall"
)
self.store.clone_course(mongo_course2_id, split_course3_id, self.user.id)
self.assertCoursesEqual(mongo_course2_id, split_course3_id)
# 4. clone course (split -> split)
split_course4_id = CourseLocator(
org="edx4", course="split4", run="2013_Fall", branch=ModuleStoreEnum.BranchName.draft
org="edx4", course="split4", run="2013_Fall"
)
self.store.clone_course(split_course3_id, split_course4_id, self.user.id)
self.assertCoursesEqual(split_course3_id, split_course4_id)

View File

@@ -257,13 +257,14 @@ class CourseTestCase(ModuleStoreTestCase):
)
for course1_item in course1_items:
course2_item_location = course1_item.location.map_into_course(course2_id)
if course1_item.location.category == 'course':
course1_item_loc = course1_item.location
course2_item_loc = course2_id.make_usage_key(course1_item_loc.block_type, course1_item_loc.block_id)
if course1_item_loc.block_type == 'course':
# mongo uses the run as the name, split uses 'course'
store = self.store._get_modulestore_for_courseid(course2_id) # pylint: disable=protected-access
new_name = 'course' if isinstance(store, SplitMongoModuleStore) else course2_item_location.run
course2_item_location = course2_item_location.replace(name=new_name)
course2_item = self.store.get_item(course2_item_location)
new_name = 'course' if isinstance(store, SplitMongoModuleStore) else course2_item_loc.run
course2_item_loc = course2_item_loc.replace(name=new_name)
course2_item = self.store.get_item(course2_item_loc)
try:
# compare published state
@@ -278,7 +279,7 @@ class CourseTestCase(ModuleStoreTestCase):
c1_state,
c2_state,
"Publish states not equal: course item {} in state {} != course item {} in state {}".format(
course1_item.location, c1_state, course2_item.location, c2_state
course1_item_loc, c1_state, course2_item.location, c2_state
)
)
@@ -296,11 +297,9 @@ class CourseTestCase(ModuleStoreTestCase):
expected_children = []
for course1_item_child in course1_item.children:
expected_children.append(
course1_item_child.map_into_course(course2_id)
course2_id.make_usage_key(course1_item_child.block_type, course1_item_child.block_id)
)
# also process course2_children just in case they have version guids
course2_children = [child.version_agnostic() for child in course2_item.children]
self.assertEqual(expected_children, course2_children)
self.assertEqual(expected_children, course2_item.children)
# compare assets
content_store = self.store.contentstore