diff --git a/cms/djangoapps/contentstore/tests/test_utils.py b/cms/djangoapps/contentstore/tests/test_utils.py index 7d451f9834..c5e679ccb3 100644 --- a/cms/djangoapps/contentstore/tests/test_utils.py +++ b/cms/djangoapps/contentstore/tests/test_utils.py @@ -11,6 +11,8 @@ from opaque_keys.edx.locations import SlashSeparatedCourseKey from xmodule.modulestore.django import modulestore from xmodule.partitions.partitions import UserPartition, Group +from openedx.core.djangoapps.site_configuration.tests.test_util import with_site_configuration_context + from contentstore import utils from contentstore.tests.utils import CourseTestCase @@ -37,6 +39,31 @@ class LMSLinksTestCase(TestCase): link = utils.get_lms_link_for_item(location) self.assertEquals(link, "//localhost:8000/courses/mitX/101/test/jump_to/i4x://mitX/101/course/test") + def lms_link_for_certificate_web_view_test(self): + """ Tests get_lms_link_for_certificate_web_view. """ + course_key = SlashSeparatedCourseKey('mitX', '101', 'test') + dummy_user = ModuleStoreEnum.UserID.test + mode = 'professional' + + self.assertEquals( + utils.get_lms_link_for_certificate_web_view(dummy_user, course_key, mode), + "//localhost:8000/certificates/user/{user_id}/course/{course_key}?preview={mode}".format( + user_id=dummy_user, + course_key=course_key, + mode=mode + ) + ) + + with with_site_configuration_context(configuration={"course_org_filter": "mitX", "LMS_BASE": "dummyhost:8000"}): + self.assertEquals( + utils.get_lms_link_for_certificate_web_view(dummy_user, course_key, mode), + "//dummyhost:8000/certificates/user/{user_id}/course/{course_key}?preview={mode}".format( + user_id=dummy_user, + course_key=course_key, + mode=mode + ) + ) + class ExtraPanelTabTestCase(TestCase): """ Tests adding and removing extra course tabs. """ diff --git a/cms/djangoapps/contentstore/utils.py b/cms/djangoapps/contentstore/utils.py index 27305e679f..4cbe9b00c6 100644 --- a/cms/djangoapps/contentstore/utils.py +++ b/cms/djangoapps/contentstore/utils.py @@ -123,11 +123,14 @@ def get_lms_link_for_certificate_web_view(user_id, course_key, mode): """ assert isinstance(course_key, CourseKey) - if settings.LMS_BASE is None: + # checks LMS_BASE value in SiteConfiguration against course_org_filter if not found returns settings.LMS_BASE + lms_base = SiteConfiguration.get_value_for_org(course_key.org, "LMS_BASE", settings.LMS_BASE) + + if lms_base is None: return None return u"//{certificate_web_base}/certificates/user/{user_id}/course/{course_id}?preview={mode}".format( - certificate_web_base=settings.LMS_BASE, + certificate_web_base=lms_base, user_id=user_id, course_id=unicode(course_key), mode=mode