From 701eac33ec81085739c0daa1624e1f258ccb614b Mon Sep 17 00:00:00 2001 From: Don Mitchell Date: Thu, 29 May 2014 10:51:12 -0400 Subject: [PATCH] get_courses doesn't return ErrorDescriptor --- common/lib/xmodule/xmodule/modulestore/mongo/base.py | 3 ++- common/lib/xmodule/xmodule/modulestore/split_mongo/split.py | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/common/lib/xmodule/xmodule/modulestore/mongo/base.py b/common/lib/xmodule/xmodule/modulestore/mongo/base.py index 7799a685d8..db12b4f4f3 100644 --- a/common/lib/xmodule/xmodule/modulestore/mongo/base.py +++ b/common/lib/xmodule/xmodule/modulestore/mongo/base.py @@ -557,7 +557,7 @@ class MongoModuleStore(ModuleStoreWriteBase): ''' Returns a list of course descriptors. ''' - return sum( + base_list = sum( [ self._load_items( SlashSeparatedCourseKey(course['_id']['org'], course['_id']['course'], course['_id']['name']), @@ -574,6 +574,7 @@ class MongoModuleStore(ModuleStoreWriteBase): ], [] ) + return [course for course in base_list if not isinstance(course, ErrorDescriptor)] def _find_one(self, location): '''Look for a given location in the collection. If revision is not diff --git a/common/lib/xmodule/xmodule/modulestore/split_mongo/split.py b/common/lib/xmodule/xmodule/modulestore/split_mongo/split.py index d1e4725ec0..2d43de04f4 100644 --- a/common/lib/xmodule/xmodule/modulestore/split_mongo/split.py +++ b/common/lib/xmodule/xmodule/modulestore/split_mongo/split.py @@ -70,6 +70,7 @@ from bson.objectid import ObjectId from xmodule.modulestore.split_mongo.mongo_connection import MongoConnection from xblock.core import XBlock from xmodule.modulestore.loc_mapper_store import LocMapperStore +from xmodule.error_module import ErrorDescriptor log = logging.getLogger(__name__) #============================================================================== @@ -313,7 +314,9 @@ class SplitMongoModuleStore(ModuleStoreWriteBase): 'structure': entry, } root = entry['root'] - result.extend(self._load_items(envelope, [root], 0, lazy=True)) + course_list = self._load_items(envelope, [root], 0, lazy=True) + if not isinstance(course_list[0], ErrorDescriptor): + result.append(course_list[0]) return result def get_course(self, course_id, depth=None):