diff --git a/openedx/core/djangoapps/content/course_overviews/management/commands/generate_course_overview.py b/openedx/core/djangoapps/content/course_overviews/management/commands/generate_course_overview.py index ce45c9d76e..5f44354ff7 100644 --- a/openedx/core/djangoapps/content/course_overviews/management/commands/generate_course_overview.py +++ b/openedx/core/djangoapps/content/course_overviews/management/commands/generate_course_overview.py @@ -54,4 +54,4 @@ class Command(BaseCommand): except InvalidKeyError: raise CommandError('Invalid key specified.') - CourseOverview.get_select_courses(course_keys, force_update=options.get('force_update')) + CourseOverview.update_select_courses(course_keys, force_update=options.get('force_update')) diff --git a/openedx/core/djangoapps/content/course_overviews/models.py b/openedx/core/djangoapps/content/course_overviews/models.py index 4978214950..bbedad0168 100644 --- a/openedx/core/djangoapps/content/course_overviews/models.py +++ b/openedx/core/djangoapps/content/course_overviews/models.py @@ -487,9 +487,10 @@ class CourseOverview(TimeStampedModel): return json.loads(self._pre_requisite_courses_json) @classmethod - def get_select_courses(cls, course_keys, force_update=False): + def update_select_courses(cls, course_keys, force_update=False): """ - Returns CourseOverview objects for the given course_keys. + A side-effecting method that updates CourseOverview objects for + the given course_keys. Arguments: course_keys (list[CourseKey]): Identifies for which courses to @@ -498,8 +499,6 @@ class CourseOverview(TimeStampedModel): whether the requested CourseOverview objects should be forcefully updated (i.e., re-synched with the modulestore). """ - course_overviews = [] - log.info('Generating course overview for %d courses.', len(course_keys)) log.debug('Generating course overview(s) for the following courses: %s', course_keys) @@ -507,7 +506,7 @@ class CourseOverview(TimeStampedModel): for course_key in course_keys: try: - course_overviews.append(action(course_key)) + action(course_key) except Exception as ex: # pylint: disable=broad-except log.exception( 'An error occurred while generating course overview for %s: %s', @@ -517,8 +516,6 @@ class CourseOverview(TimeStampedModel): log.info('Finished generating course overviews.') - return course_overviews - @classmethod def get_all_courses(cls, orgs=None, filter_=None): """ diff --git a/openedx/core/djangoapps/content/course_overviews/tests.py b/openedx/core/djangoapps/content/course_overviews/tests.py index 103db6d140..c8e67da636 100644 --- a/openedx/core/djangoapps/content/course_overviews/tests.py +++ b/openedx/core/djangoapps/content/course_overviews/tests.py @@ -450,13 +450,14 @@ class CourseOverviewTestCase(ModuleStoreTestCase): unmodified_overview = CourseOverview.get_from_id(course.id) self.assertEqual(unmodified_overview.version, 11) - def test_get_select_courses(self): + def test_update_select_courses(self): course_ids = [CourseFactory.create().id for __ in range(3)] select_course_ids = course_ids[:len(course_ids) - 1] # all items except the last - self.assertEqual( - {course_overview.id for course_overview in CourseOverview.get_select_courses(select_course_ids)}, - set(select_course_ids), - ) + with mock.patch( + 'openedx.core.djangoapps.content.course_overviews.models.CourseOverview.get_from_id' + ) as mock_get_from_id: + CourseOverview.update_select_courses(select_course_ids) + self.assertEquals(mock_get_from_id.call_count, len(select_course_ids)) def test_get_all_courses(self): course_ids = [CourseFactory.create(emit_signals=True).id for __ in range(3)]