refactor: reduce certificate django apps dependence on the modulestore (generation_handler)

[MICROBA-1178]
- remove modulestore usage in `generation_handler.py`
- add duplicate functions that utilize a CourseKey or CourseOverview to remove dependence on modulestore (this will be cleaned up (if possible) at a later part of this refactor)
- add python API function to `content`/`course_overview` app that will retrieve a single CourseOverview (rather than a serialized list of dicts of CourseOverview data)
This commit is contained in:
Justin Hynes
2021-05-03 14:48:45 -04:00
parent f74d7c9ea7
commit 5db4fd5bb2
9 changed files with 140 additions and 57 deletions

View File

@@ -2,12 +2,18 @@
CourseOverview internal api
"""
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
from openedx.core.djangoapps.content.course_overviews.serializers import (
CourseOverviewBaseSerializer,
)
def get_course_overview(course_id):
"""
Retrieve and return course overview data for the provided course id.
"""
return CourseOverview.get_from_id(course_id)
def get_course_overviews(course_ids):
"""
Return course_overview data for a given list of opaque_key course_ids.

View File

@@ -3,7 +3,7 @@ course_overview api tests
"""
from django.test import TestCase
from openedx.core.djangoapps.content.course_overviews.api import get_course_overviews
from openedx.core.djangoapps.content.course_overviews.api import get_course_overview, get_course_overviews
from openedx.core.djangoapps.content.course_overviews.tests.factories import CourseOverviewFactory
from ..models import CourseOverview
@@ -19,6 +19,14 @@ class TestCourseOverviewsApi(TestCase):
for _ in range(3):
CourseOverviewFactory.create()
def test_get_course_overview(self):
"""
Test for `get_course_overview` function to retrieve a single course overview.
"""
course_overview = CourseOverviewFactory.create()
retrieved_course_overview = get_course_overview(course_overview.id)
assert course_overview.id == retrieved_course_overview.id
def test_get_course_overviews(self):
"""
get_course_overviews should return the expected CourseOverview data