From 62643a5941889f64f067afe054f27e50d45795d0 Mon Sep 17 00:00:00 2001 From: Ben McMorran Date: Thu, 21 Aug 2014 15:43:22 -0400 Subject: [PATCH] Fix broken rerun test --- cms/djangoapps/contentstore/tasks.py | 2 +- cms/djangoapps/contentstore/tests/test_clone_course.py | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/cms/djangoapps/contentstore/tasks.py b/cms/djangoapps/contentstore/tasks.py index ac1bfa9c48..8b05565eb8 100644 --- a/cms/djangoapps/contentstore/tasks.py +++ b/cms/djangoapps/contentstore/tasks.py @@ -23,7 +23,7 @@ def rerun_course(source_course_key_string, destination_course_key_string, user_i # deserialize the payload source_course_key = CourseKey.from_string(source_course_key_string) destination_course_key = CourseKey.from_string(destination_course_key_string) - fields = deserialize_fields(fields) + fields = deserialize_fields(fields) if fields else None # use the split modulestore as the store for the rerun course, # as the Mongo modulestore doesn't support multiple runs of the same course. diff --git a/cms/djangoapps/contentstore/tests/test_clone_course.py b/cms/djangoapps/contentstore/tests/test_clone_course.py index 5f91596d68..25ea5eb6e8 100644 --- a/cms/djangoapps/contentstore/tests/test_clone_course.py +++ b/cms/djangoapps/contentstore/tests/test_clone_course.py @@ -1,8 +1,9 @@ """ Unit tests for cloning a course between the same and different module stores. """ +import json from opaque_keys.edx.locator import CourseLocator -from xmodule.modulestore import ModuleStoreEnum +from xmodule.modulestore import ModuleStoreEnum, EdxJSONEncoder from contentstore.tests.utils import CourseTestCase from contentstore.tasks import rerun_course from contentstore.views.access import has_course_access @@ -58,7 +59,8 @@ class CloneCourseTest(CourseTestCase): # Mark the action as initiated fields = {'display_name': 'rerun'} CourseRerunState.objects.initiated(mongo_course1_id, split_course3_id, self.user, fields['display_name']) - result = rerun_course.delay(unicode(mongo_course1_id), unicode(split_course3_id), self.user.id, fields) + result = rerun_course.delay(unicode(mongo_course1_id), unicode(split_course3_id), self.user.id, + json.dumps(fields, cls=EdxJSONEncoder)) self.assertEqual(result.get(), "succeeded") self.assertTrue(has_course_access(self.user, split_course3_id), "Didn't grant access") rerun_state = CourseRerunState.objects.find_first(course_key=split_course3_id) @@ -78,7 +80,8 @@ class CloneCourseTest(CourseTestCase): split_course4_id = CourseLocator(org="edx3", course="split3", run="rerun_fail") fields = {'display_name': 'total failure'} CourseRerunState.objects.initiated(split_course3_id, split_course4_id, self.user, fields['display_name']) - result = rerun_course.delay(unicode(split_course3_id), unicode(split_course4_id), self.user.id, fields) + result = rerun_course.delay(unicode(split_course3_id), unicode(split_course4_id), self.user.id, + json.dumps(fields, cls=EdxJSONEncoder)) self.assertIn("exception: ", result.get()) self.assertIsNone(self.store.get_course(split_course4_id), "Didn't delete course after error") CourseRerunState.objects.find_first(