diff --git a/lms/djangoapps/ccx/api/v0/tests/test_views.py b/lms/djangoapps/ccx/api/v0/tests/test_views.py index b9b369917e..c5fe60717f 100644 --- a/lms/djangoapps/ccx/api/v0/tests/test_views.py +++ b/lms/djangoapps/ccx/api/v0/tests/test_views.py @@ -77,7 +77,7 @@ class CcxRestApiTest(CcxTestCase, APITestCase): self.course.enable_ccx = True self.mstore.update_item(self.course, self.coach.id) # making the master course chapters easily available - self.master_course_chapters = courses.get_course_chapters(self.master_course_key) + self.master_course_chapters = courses.get_course_chapter_ids(self.master_course_key) def get_auth_token(self, app_grant, app_client): """ diff --git a/lms/djangoapps/ccx/api/v0/views.py b/lms/djangoapps/ccx/api/v0/views.py index 9177282f89..a80c1f1cde 100644 --- a/lms/djangoapps/ccx/api/v0/views.py +++ b/lms/djangoapps/ccx/api/v0/views.py @@ -186,7 +186,7 @@ def valid_course_modules(course_module_list, master_course_key): Returns: bool: whether or not all the course module strings belong to the master course """ - course_chapters = courses.get_course_chapters(master_course_key) + course_chapters = courses.get_course_chapter_ids(master_course_key) return set(course_module_list).intersection(set(course_chapters)) == set(course_module_list) diff --git a/lms/djangoapps/courseware/courses.py b/lms/djangoapps/courseware/courses.py index 95ec1d6484..e1e9f9e3a9 100644 --- a/lms/djangoapps/courseware/courses.py +++ b/lms/djangoapps/courseware/courses.py @@ -595,7 +595,7 @@ def get_current_child(xmodule, min_depth=None, requested_child=None): return child -def get_course_chapters(course_key): +def get_course_chapter_ids(course_key): """ Extracts the chapter block keys from a course structure. @@ -605,7 +605,8 @@ def get_course_chapters(course_key): list (string): The list of string representations of the chapter block keys in the course. """ try: - chapters = modulestore().get_items(course_key, qualifiers={'category': 'chapter'}) + chapter_keys = modulestore().get_course(course_key).children except Exception: # pylint: disable=broad-except + log.exception('Failed to retrieve course from modulestore.') return [] - return [unicode(chapter.location) for chapter in chapters] + return [unicode(chapter_key) for chapter_key in chapter_keys if chapter_key.block_type == 'chapter'] diff --git a/lms/djangoapps/courseware/tests/test_courses.py b/lms/djangoapps/courseware/tests/test_courses.py index bc0b23e33a..41512357c9 100644 --- a/lms/djangoapps/courseware/tests/test_courses.py +++ b/lms/djangoapps/courseware/tests/test_courses.py @@ -22,7 +22,7 @@ from courseware.courses import ( get_cms_course_link, get_course_about_section, get_course_by_id, - get_course_chapters, + get_course_chapter_ids, get_course_info_section, get_course_overview_with_access, get_course_with_access, @@ -431,25 +431,28 @@ class CourseInstantiationTests(ModuleStoreTestCase): @attr(shard=1) class TestGetCourseChapters(ModuleStoreTestCase): """ - Tests for the `get_course_chapters` function. + Tests for the `get_course_chapter_ids` function. """ def test_get_non_existant_course(self): """ Test non-existant course returns empty list. """ - self.assertEqual(get_course_chapters(None), []) + self.assertEqual(get_course_chapter_ids(None), []) # build a fake key fake_course_key = CourseKey.from_string('course-v1:FakeOrg+CN1+CR-FALLNEVER1') - self.assertEqual(get_course_chapters(fake_course_key), []) + self.assertEqual(get_course_chapter_ids(fake_course_key), []) def test_get_chapters(self): """ - Test get_course_chapters returns expected result. + Test get_course_chapter_ids returns expected result. """ course = CourseFactory() ItemFactory(parent=course, category='chapter') + ItemFactory(parent=course, category='chapter') + course_chapter_ids = get_course_chapter_ids(course.location.course_key) + self.assertEqual(len(course_chapter_ids), 2) self.assertEqual( - get_course_chapters(course.location.course_key), + course_chapter_ids, [unicode(child) for child in course.children] )