Make split mongo read-only API consistent with other modulestores.
This commit is contained in:
@@ -56,21 +56,27 @@ class LMSLinksTestCase(TestCase):
|
||||
def get_about_page_link(self):
|
||||
""" create mock course and return the about page link """
|
||||
location = 'i4x', 'mitX', '101', 'course', 'test'
|
||||
utils.get_course_id = mock.Mock(return_value="mitX/101/test")
|
||||
return utils.get_lms_link_for_about_page(location)
|
||||
|
||||
def lms_link_test(self):
|
||||
""" Tests get_lms_link_for_item. """
|
||||
location = 'i4x', 'mitX', '101', 'vertical', 'contacting_us'
|
||||
utils.get_course_id = mock.Mock(return_value="mitX/101/test")
|
||||
link = utils.get_lms_link_for_item(location, False)
|
||||
link = utils.get_lms_link_for_item(location, False, "mitX/101/test")
|
||||
self.assertEquals(link, "//localhost:8000/courses/mitX/101/test/jump_to/i4x://mitX/101/vertical/contacting_us")
|
||||
link = utils.get_lms_link_for_item(location, True)
|
||||
link = utils.get_lms_link_for_item(location, True, "mitX/101/test")
|
||||
self.assertEquals(
|
||||
link,
|
||||
"//preview/courses/mitX/101/test/jump_to/i4x://mitX/101/vertical/contacting_us"
|
||||
)
|
||||
|
||||
# If no course_id is passed in, it is obtained from the location. This is the case for
|
||||
# Studio dashboard.
|
||||
location = 'i4x', 'mitX', '101', 'course', 'test'
|
||||
link = utils.get_lms_link_for_item(location)
|
||||
self.assertEquals(
|
||||
link,
|
||||
"//localhost:8000/courses/mitX/101/test/jump_to/i4x://mitX/101/course/test"
|
||||
)
|
||||
|
||||
class ExtraPanelTabTestCase(TestCase):
|
||||
""" Tests adding and removing extra course tabs. """
|
||||
|
||||
@@ -89,8 +89,17 @@ def get_course_for_item(location):
|
||||
|
||||
|
||||
def get_lms_link_for_item(location, preview=False, course_id=None):
|
||||
"""
|
||||
Returns an LMS link to the course with a jump_to to the provided location.
|
||||
|
||||
:param location: the location to jump to
|
||||
:param preview: True if the preview version of LMS should be returned. Default value is false.
|
||||
:param course_id: the course_id within which the location lives. If not specified, the course_id is obtained
|
||||
by calling Location(location).course_id; note that this only works for locations representing courses
|
||||
instead of elements within courses.
|
||||
"""
|
||||
if course_id is None:
|
||||
course_id = get_course_id(location)
|
||||
course_id = Location(location).course_id
|
||||
|
||||
if settings.LMS_BASE is not None:
|
||||
if preview:
|
||||
@@ -136,7 +145,7 @@ def get_lms_link_for_about_page(location):
|
||||
if about_base is not None:
|
||||
lms_link = "//{about_base_url}/courses/{course_id}/about".format(
|
||||
about_base_url=about_base,
|
||||
course_id=get_course_id(location)
|
||||
course_id=Location(location).course_id
|
||||
)
|
||||
else:
|
||||
lms_link = None
|
||||
@@ -144,14 +153,6 @@ def get_lms_link_for_about_page(location):
|
||||
return lms_link
|
||||
|
||||
|
||||
def get_course_id(location):
|
||||
"""
|
||||
Returns the course_id from a given the location tuple.
|
||||
"""
|
||||
# TODO: These will need to be changed to point to the particular instance of this problem in the particular course
|
||||
return modulestore().get_containing_courses(Location(location))[0].id
|
||||
|
||||
|
||||
class UnitState(object):
|
||||
draft = 'draft'
|
||||
private = 'private'
|
||||
|
||||
@@ -54,8 +54,7 @@ def index(request):
|
||||
'name': course.location.name,
|
||||
}),
|
||||
get_lms_link_for_item(
|
||||
course.location,
|
||||
course_id=course.location.course_id,
|
||||
course.location
|
||||
),
|
||||
course.display_org_with_default,
|
||||
course.display_number_with_default,
|
||||
|
||||
Reference in New Issue
Block a user