Skip to content

Commit

Permalink
Merge pull request openedx#20705 from edx/depr/microsites-certificates
Browse files Browse the repository at this point in the history
Remove microsites from certificates
  • Loading branch information
nasthagiri authored May 29, 2019
2 parents 5c3dbaa + aee2d36 commit c0c1760
Show file tree
Hide file tree
Showing 5 changed files with 109 additions and 338 deletions.
7 changes: 0 additions & 7 deletions lms/djangoapps/certificates/tests/factories.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,13 +76,6 @@ class Meta(object):
"xseries": {
"certificate_title": "XSeries Certificate of Achievement",
"certificate_type": "XSeries"
},
"microsites": {
"test-site": {
"company_about_url": "http://www.test-site.org/about-us",
"company_privacy_url": "http://www.test-site.org/edx-privacy-policy",
"company_tos_url": "http://www.test-site.org/edx-terms-service"
}
}
}"""

Expand Down
63 changes: 21 additions & 42 deletions lms/djangoapps/certificates/tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
from opaque_keys.edx.locator import CourseLocator
import pytz

from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from courseware.tests.factories import GlobalStaffFactory
from lms.djangoapps.certificates import api as certs_api
from lms.djangoapps.certificates.models import (
CertificateGenerationConfiguration,
Expand All @@ -28,11 +31,8 @@
)
from lms.djangoapps.certificates.queue import XQueueAddToQueueError, XQueueCertInterface
from lms.djangoapps.certificates.tests.factories import CertificateInvalidationFactory, GeneratedCertificateFactory
from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from courseware.tests.factories import GlobalStaffFactory
from lms.djangoapps.grades.tests.utils import mock_passing_grade
from microsite_configuration import microsite
from openedx.core.djangoapps.site_configuration.tests.test_util import with_site_configuration
from student.models import CourseEnrollment
from student.tests.factories import UserFactory
from util.testing import EventTestMixin
Expand Down Expand Up @@ -735,36 +735,22 @@ def _assert_cert_status(self, *expected_statuses):
self.assertEqual(list(expected_statuses), actual_status)


def set_microsite(domain):
"""
returns a decorator that can be used on a test_case to set a specific microsite for the current test case.
:param domain: Domain of the new microsite
"""
def decorator(func):
"""
Decorator to set current microsite according to domain
"""
@wraps(func)
def inner(request, *args, **kwargs):
"""
Execute the function after setting up the microsite.
"""
try:
microsite.set_by_domain(domain)
return func(request, *args, **kwargs)
finally:
microsite.clear()
return inner
return decorator


@override_settings(FEATURES=FEATURES_WITH_CERTS_ENABLED)
class CertificatesBrandingTest(TestCase):
"""Test certificates branding. """

COURSE_KEY = CourseLocator(org='test', course='test', run='test')

@set_microsite(settings.MICROSITE_CONFIGURATION['test_site']['domain_prefix'])
configuration = {
'logo_image_url': 'test_site/images/header-logo.png',
'SITE_NAME': 'test_site.localhost',
'urls': {
'ABOUT': 'test-site/about',
'PRIVACY': 'test-site/privacy',
'TOS_AND_HONOR': 'test-site/tos-and-honor',
},
}

@with_site_configuration(configuration=configuration)
def test_certificate_header_data(self):
"""
Test that get_certificate_header_context from lms.djangoapps.certificates api
Expand All @@ -780,16 +766,16 @@ def test_certificate_header_data(self):
['logo_src', 'logo_url']
)
self.assertIn(
settings.MICROSITE_CONFIGURATION['test_site']['logo_image_url'],
self.configuration['logo_image_url'],
data['logo_src']
)

self.assertIn(
settings.MICROSITE_CONFIGURATION['test_site']['SITE_NAME'],
self.configuration['SITE_NAME'],
data['logo_url']
)

@set_microsite(settings.MICROSITE_CONFIGURATION['test_site']['domain_prefix'])
@with_site_configuration(configuration=configuration)
def test_certificate_footer_data(self):
"""
Test that get_certificate_footer_context from lms.djangoapps.certificates api returns
Expand All @@ -804,22 +790,15 @@ def test_certificate_footer_data(self):
data.keys(),
['company_about_url', 'company_privacy_url', 'company_tos_url']
)

# ABOUT is present in MICROSITE_CONFIGURATION['test_site']["urls"] so web certificate will use that url
self.assertIn(
settings.MICROSITE_CONFIGURATION['test_site']["urls"]['ABOUT'],
self.configuration['urls']['ABOUT'],
data['company_about_url']
)

# PRIVACY is present in MICROSITE_CONFIGURATION['test_site']["urls"] so web certificate will use that url
self.assertIn(
settings.MICROSITE_CONFIGURATION['test_site']["urls"]['PRIVACY'],
self.configuration['urls']['PRIVACY'],
data['company_privacy_url']
)

# TOS_AND_HONOR is present in MICROSITE_CONFIGURATION['test_site']["urls"],
# so web certificate will use that url
self.assertIn(
settings.MICROSITE_CONFIGURATION['test_site']["urls"]['TOS_AND_HONOR'],
self.configuration['urls']['TOS_AND_HONOR'],
data['company_tos_url']
)
103 changes: 33 additions & 70 deletions lms/djangoapps/certificates/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
ExampleCertificateSet,
GeneratedCertificate
)
from openedx.core.djangoapps.site_configuration.tests.test_util import with_site_configuration
from openedx.core.djangolib.testing.utils import CacheIsolationTestCase
from student.tests.factories import UserFactory
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
Expand Down Expand Up @@ -179,13 +180,30 @@ def _assert_response(self, response):
self.assertEqual(content['return_code'], 0)


class MicrositeCertificatesViewsTests(ModuleStoreTestCase):
class CertificatesViewsSiteTests(ModuleStoreTestCase):
"""
Tests for the microsite certificates web/html views
Tests for the certificates web/html views
"""
test_configuration_string = """{
"default": {
"accomplishment_class_append": "accomplishment-certificate",
"platform_name": "edX",
"company_about_url": "http://www.edx.org/about-us",
"company_privacy_url": "http://www.edx.org/edx-privacy-policy",
"company_tos_url": "http://www.edx.org/edx-terms-service",
"company_verified_certificate_url": "http://www.edx.org/verified-certificate",
"document_stylesheet_url_application": "/static/certificates/sass/main-ltr.css",
"logo_src": "/static/certificates/images/logo-edx.svg",
"logo_url": "http://www.edx.org",
"company_about_description": "This should not survive being overwritten by static content"
},
"honor": {
"certificate_type": "Honor Code"
}
}"""

def setUp(self):
super(MicrositeCertificatesViewsTests, self).setUp()
super(CertificatesViewsSiteTests, self).setUp()
self.client = Client()
self.course = CourseFactory.create(
org='testorg',
Expand Down Expand Up @@ -216,12 +234,13 @@ def setUp(self):
mode='honor',
name=self.user.profile.name,
)
self._setup_configuration()

def _certificate_html_view_configuration(self, configuration_string, enabled=True):
def _setup_configuration(self, enabled=True):
"""
This will create a certificate html configuration
"""
config = CertificateHtmlViewConfiguration(enabled=enabled, configuration=configuration_string)
config = CertificateHtmlViewConfiguration(enabled=enabled, configuration=self.test_configuration_string)
config.save()
return config

Expand Down Expand Up @@ -258,82 +277,26 @@ def _add_course_certificates(self, count=1, signatory_count=0, is_active=True):
self.store.update_item(self.course, self.user.id)

@override_settings(FEATURES=FEATURES_WITH_CERTS_ENABLED)
def test_html_view_for_microsite(self):
test_configuration_string = """{
"default": {
"accomplishment_class_append": "accomplishment-certificate",
"platform_name": "edX",
"company_about_url": "http://www.edx.org/about-us",
"company_privacy_url": "http://www.edx.org/edx-privacy-policy",
"company_tos_url": "http://www.edx.org/edx-terms-service",
"company_verified_certificate_url": "http://www.edx.org/verified-certificate",
"document_stylesheet_url_application": "/static/certificates/sass/main-ltr.css",
"logo_src": "/static/certificates/images/logo-edx.svg",
"logo_url": "http://www.edx.org"
},
"microsites": {
"test-site": {
"accomplishment_class_append": "accomplishment-certificate",
"platform_name": "platform_microsite",
"company_about_url": "http://www.microsite.org/about-us",
"company_privacy_url": "http://www.microsite.org/edx-privacy-policy",
"company_tos_url": "http://www.microsite.org/microsite-terms-service",
"company_verified_certificate_url": "http://www.microsite.org/verified-certificate",
"document_stylesheet_url_application": "/static/certificates/sass/main-ltr.css",
"logo_src": "/static/certificates/images/logo-microsite.svg",
"logo_url": "http://www.microsite.org",
"company_about_description": "This is special microsite aware company_about_description content",
"company_about_title": "Microsite title"
}
},
"honor": {
"certificate_type": "Honor Code"
}
}"""

config = self._certificate_html_view_configuration(configuration_string=test_configuration_string)
self.assertEquals(config.configuration, test_configuration_string)
@with_site_configuration(configuration={'platform_name': 'My Platform Site'})
def test_html_view_for_site(self):
test_url = get_certificate_url(
user_id=self.user.id,
course_id=unicode(self.course.id)
)
self._add_course_certificates(count=1, signatory_count=2)
response = self.client.get(test_url, HTTP_HOST=settings.MICROSITE_TEST_HOSTNAME)
self.assertIn('platform_microsite', response.content)

# logo url is taken from microsite configuration setting
self.assertIn('http://test_site.localhost', response.content)
self.assertIn('This is special microsite aware company_about_description content', response.content)
self.assertIn('Microsite title', response.content)
response = self.client.get(test_url)
self.assertIn('awarded this My Platform Site Honor Code Certificate of Completion', response.content)
self.assertIn('My Platform Site offers interactive online classes and MOOCs.', response.content)
self.assertIn('About My Platform Site', response.content)

@override_settings(FEATURES=FEATURES_WITH_CERTS_ENABLED)
def test_html_view_microsite_configuration_missing(self):
test_configuration_string = """{
"default": {
"accomplishment_class_append": "accomplishment-certificate",
"platform_name": "edX",
"company_about_url": "http://www.edx.org/about-us",
"company_privacy_url": "http://www.edx.org/edx-privacy-policy",
"company_tos_url": "http://www.edx.org/edx-terms-service",
"company_verified_certificate_url": "http://www.edx.org/verified-certificate",
"document_stylesheet_url_application": "/static/certificates/sass/main-ltr.css",
"logo_src": "/static/certificates/images/logo-edx.svg",
"logo_url": "http://www.edx.org",
"company_about_description": "This should not survive being overwritten by static content"
},
"honor": {
"certificate_type": "Honor Code"
}
}"""
config = self._certificate_html_view_configuration(configuration_string=test_configuration_string)
self.assertEquals(config.configuration, test_configuration_string)
def test_html_view_site_configuration_missing(self):
test_url = get_certificate_url(
user_id=self.user.id,
course_id=unicode(self.course.id)
)
self._add_course_certificates(count=1, signatory_count=2)
response = self.client.get(test_url, HTTP_HOST=settings.MICROSITE_TEST_HOSTNAME)
response = self.client.get(test_url)
self.assertIn('edX', response.content)
self.assertNotIn('platform_microsite', response.content)
self.assertNotIn('http://www.microsite.org', response.content)
self.assertNotIn('My Platform Site', response.content)
self.assertNotIn('This should not survive being overwritten by static content', response.content)
Loading

0 comments on commit c0c1760

Please sign in to comment.