Merge pull request #10561 from edx/release
Verify patched fix merge back into master.
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
import unittest
|
||||
import ddt
|
||||
import mock
|
||||
|
||||
from django.conf import settings
|
||||
from django.core.urlresolvers import reverse
|
||||
@@ -15,9 +16,18 @@ from certificates.tests.factories import GeneratedCertificateFactory # pylint:
|
||||
from certificates.api import get_certificate_url # pylint: disable=import-error
|
||||
from course_modes.models import CourseMode
|
||||
|
||||
from student.models import LinkedInAddToProfileConfiguration
|
||||
|
||||
# pylint: disable=no-member
|
||||
|
||||
|
||||
def _fake_is_request_in_microsite():
|
||||
"""
|
||||
Mocked version of microsite helper method to always return true
|
||||
"""
|
||||
return True
|
||||
|
||||
|
||||
@ddt.ddt
|
||||
@unittest.skipUnless(settings.ROOT_URLCONF == 'lms.urls', 'Test only valid in lms')
|
||||
class CertificateDisplayTest(ModuleStoreTestCase):
|
||||
@@ -98,6 +108,60 @@ class CertificateDisplayTest(ModuleStoreTestCase):
|
||||
self.assertContains(response, u'View Test_Certificate')
|
||||
self.assertContains(response, test_url)
|
||||
|
||||
def test_post_to_linkedin_invisibility(self):
|
||||
"""
|
||||
Verifies that the post certificate to linked button
|
||||
does not appear by default (when config is not set)
|
||||
"""
|
||||
self._create_certificate('honor')
|
||||
|
||||
# until we set up the configuration, the LinkedIn action
|
||||
# button should not be visible
|
||||
self._check_linkedin_visibility(False)
|
||||
|
||||
def test_post_to_linkedin_visibility(self):
|
||||
"""
|
||||
Verifies that the post certificate to linked button appears
|
||||
as expected
|
||||
"""
|
||||
self._create_certificate('honor')
|
||||
|
||||
config = LinkedInAddToProfileConfiguration(
|
||||
company_identifier='0_mC_o2MizqdtZEmkVXjH4eYwMj4DnkCWrZP_D9',
|
||||
enabled=True
|
||||
)
|
||||
config.save()
|
||||
|
||||
# now we should see it
|
||||
self._check_linkedin_visibility(True)
|
||||
|
||||
@mock.patch("microsite_configuration.microsite.is_request_in_microsite", _fake_is_request_in_microsite)
|
||||
def test_post_to_linkedin_microsite(self):
|
||||
"""
|
||||
Verifies behavior for microsites which disables the post to LinkedIn
|
||||
feature (for now)
|
||||
"""
|
||||
self._create_certificate('honor')
|
||||
|
||||
config = LinkedInAddToProfileConfiguration(
|
||||
company_identifier='0_mC_o2MizqdtZEmkVXjH4eYwMj4DnkCWrZP_D9',
|
||||
enabled=True
|
||||
)
|
||||
config.save()
|
||||
|
||||
# now we should not see it because we are in a microsite
|
||||
self._check_linkedin_visibility(False)
|
||||
|
||||
def _check_linkedin_visibility(self, is_visible):
|
||||
"""
|
||||
Performs assertions on the Dashboard
|
||||
"""
|
||||
response = self.client.get(reverse('dashboard'))
|
||||
if is_visible:
|
||||
self.assertContains(response, u'Add Certificate to LinkedIn Profile')
|
||||
else:
|
||||
self.assertNotContains(response, u'Add Certificate to LinkedIn Profile')
|
||||
|
||||
def _create_certificate(self, enrollment_mode):
|
||||
"""Simulate that the user has a generated certificate. """
|
||||
CourseEnrollmentFactory.create(user=self.user, course_id=self.course.id, mode=enrollment_mode)
|
||||
|
||||
@@ -362,7 +362,10 @@ def _cert_info(user, course_overview, cert_status, course_mode): # pylint: disa
|
||||
# Clicking this button sends the user to LinkedIn where they
|
||||
# can add the certificate information to their profile.
|
||||
linkedin_config = LinkedInAddToProfileConfiguration.current()
|
||||
if linkedin_config.enabled:
|
||||
|
||||
# posting certificates to LinkedIn is not currently
|
||||
# supported in microsites/White Labels
|
||||
if linkedin_config.enabled and not microsite.is_request_in_microsite():
|
||||
status_dict['linked_in_url'] = linkedin_config.add_to_profile_url(
|
||||
course_overview.id,
|
||||
course_overview.display_name,
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
import json
|
||||
import ddt
|
||||
import mock
|
||||
from uuid import uuid4
|
||||
from nose.plugins.attrib import attr
|
||||
from mock import patch
|
||||
@@ -49,6 +50,13 @@ FEATURES_WITH_CUSTOM_CERTS_ENABLED = {
|
||||
FEATURES_WITH_CUSTOM_CERTS_ENABLED.update(FEATURES_WITH_CERTS_ENABLED)
|
||||
|
||||
|
||||
def _fake_is_request_in_microsite():
|
||||
"""
|
||||
Mocked version of microsite helper method to always return true
|
||||
"""
|
||||
return True
|
||||
|
||||
|
||||
@attr('shard_1')
|
||||
@ddt.ddt
|
||||
class CertificatesViewsTests(ModuleStoreTestCase, EventTrackingTestCase):
|
||||
@@ -161,7 +169,23 @@ class CertificatesViewsTests(ModuleStoreTestCase, EventTrackingTestCase):
|
||||
course_id=unicode(self.course.id)
|
||||
)
|
||||
response = self.client.get(test_url)
|
||||
self.assertTrue(urllib.quote_plus(self.request.build_absolute_uri(test_url)) in response.content)
|
||||
self.assertIn(urllib.quote_plus(self.request.build_absolute_uri(test_url)), response.content)
|
||||
|
||||
@override_settings(FEATURES=FEATURES_WITH_CERTS_ENABLED)
|
||||
@mock.patch("microsite_configuration.microsite.is_request_in_microsite", _fake_is_request_in_microsite)
|
||||
def test_linkedin_share_microsites(self):
|
||||
"""
|
||||
Test: LinkedIn share URL should not be visible when called from within a microsite (for now)
|
||||
"""
|
||||
self._add_course_certificates(count=1, signatory_count=1, is_active=True)
|
||||
test_url = get_certificate_url(
|
||||
user_id=self.user.id,
|
||||
course_id=unicode(self.course.id)
|
||||
)
|
||||
response = self.client.get(test_url)
|
||||
|
||||
# the URL should not be present
|
||||
self.assertNotIn(urllib.quote_plus(self.request.build_absolute_uri(test_url)), response.content)
|
||||
|
||||
@override_settings(FEATURES=FEATURES_WITH_CERTS_ENABLED)
|
||||
def test_rendering_course_organization_data(self):
|
||||
|
||||
@@ -430,7 +430,10 @@ def render_html_view(request, user_id, course_id):
|
||||
# Clicking this button sends the user to LinkedIn where they
|
||||
# can add the certificate information to their profile.
|
||||
linkedin_config = LinkedInAddToProfileConfiguration.current()
|
||||
if linkedin_config.enabled:
|
||||
|
||||
# posting certificates to LinkedIn is not currently
|
||||
# supported in microsites/White Labels
|
||||
if linkedin_config.enabled and not microsite.is_request_in_microsite():
|
||||
context['linked_in_url'] = linkedin_config.add_to_profile_url(
|
||||
course.id,
|
||||
course.display_name,
|
||||
|
||||
@@ -61,7 +61,7 @@ $(document).ready(function(){
|
||||
${get_course_info_section(request, course, 'updates')}
|
||||
</section>
|
||||
<section aria-label="${_('Handout Navigation')}" class="handouts">
|
||||
% if SelfPacedConfiguration.current().enable_course_home_improvements:
|
||||
% if False:
|
||||
<h1>${_("Important Course Dates")}</h1>
|
||||
${get_course_date_summary(course, user)}
|
||||
% endif
|
||||
|
||||
@@ -61,7 +61,7 @@ git+https://github.com/edx/edx-reverification-block.git@0.0.4#egg=edx-reverifica
|
||||
-e git+https://github.com/edx/edx-user-state-client.git@30c0ad4b9f57f8d48d6943eb585ec8a9205f4469#egg=edx-user-state-client
|
||||
git+https://github.com/edx/edx-organizations.git@release-2015-09-22#egg=edx-organizations==0.1.6
|
||||
|
||||
git+https://github.com/edx/edx-proctoring.git@0.10.16#egg=edx-proctoring==0.10.16
|
||||
git+https://github.com/edx/edx-proctoring.git@0.10.20#egg=edx-proctoring==0.10.20
|
||||
|
||||
|
||||
# Third Party XBlocks
|
||||
|
||||
Reference in New Issue
Block a user