Merge pull request #12675 from edx/renzo/persist-programs-nav
Show Programs tab on program detail pages
This commit is contained in:
@@ -6,6 +6,7 @@ import json
|
||||
import unittest
|
||||
from urlparse import urljoin
|
||||
|
||||
from bs4 import BeautifulSoup
|
||||
from django.conf import settings
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.test import override_settings, TestCase
|
||||
@@ -51,7 +52,6 @@ class TestProgramListing(
|
||||
ClientFactory(name=CredentialsApiConfig.OAUTH2_CLIENT_NAME, client_type=CONFIDENTIAL)
|
||||
ClientFactory(name=ProgramsApiConfig.OAUTH2_CLIENT_NAME, client_type=CONFIDENTIAL)
|
||||
self.student = UserFactory()
|
||||
self.create_programs_config(xseries_ad_enabled=True, program_listing_enabled=True)
|
||||
|
||||
def _create_course_and_enroll(self, student, org, course, run):
|
||||
"""
|
||||
@@ -107,6 +107,7 @@ class TestProgramListing(
|
||||
|
||||
@httpretty.activate
|
||||
def test_get_program_with_no_enrollment(self):
|
||||
self.create_programs_config()
|
||||
response = self._setup_and_get_program()
|
||||
for program_element in self._get_program_checklist(0):
|
||||
self.assertNotContains(response, program_element)
|
||||
@@ -115,6 +116,7 @@ class TestProgramListing(
|
||||
|
||||
@httpretty.activate
|
||||
def test_get_one_program(self):
|
||||
self.create_programs_config()
|
||||
self._create_course_and_enroll(self.student, *self.COURSE_KEYS[0].split('/'))
|
||||
response = self._setup_and_get_program()
|
||||
for program_element in self._get_program_checklist(0):
|
||||
@@ -126,6 +128,7 @@ class TestProgramListing(
|
||||
|
||||
@httpretty.activate
|
||||
def test_get_both_program(self):
|
||||
self.create_programs_config()
|
||||
self._create_course_and_enroll(self.student, *self.COURSE_KEYS[0].split('/'))
|
||||
self._create_course_and_enroll(self.student, *self.COURSE_KEYS[5].split('/'))
|
||||
response = self._setup_and_get_program()
|
||||
@@ -143,7 +146,7 @@ class TestProgramListing(
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
def test_xseries_advertise_disabled(self):
|
||||
self.create_programs_config(program_listing_enabled=True, xseries_ad_enabled=False)
|
||||
self.create_programs_config(xseries_ad_enabled=False)
|
||||
self.client.login(username=self.student.username, password=self.PASSWORD)
|
||||
response = self.client.get(self.url)
|
||||
x_series_url = urljoin(settings.MKTG_URLS.get('ROOT'), 'xseries')
|
||||
@@ -194,7 +197,7 @@ class TestProgramListing(
|
||||
@httpretty.activate
|
||||
def test_get_xseries_certificates_with_data(self):
|
||||
|
||||
self.create_programs_config(program_listing_enabled=True)
|
||||
self.create_programs_config()
|
||||
self.create_credentials_config(is_learner_issuance_enabled=True)
|
||||
|
||||
self.client.login(username=self.student.username, password=self.PASSWORD)
|
||||
@@ -213,7 +216,7 @@ class TestProgramListing(
|
||||
@httpretty.activate
|
||||
def test_get_xseries_certificates_without_data(self):
|
||||
|
||||
self.create_programs_config(program_listing_enabled=True)
|
||||
self.create_programs_config()
|
||||
self.create_credentials_config(is_learner_issuance_enabled=True)
|
||||
|
||||
self.client.login(username=self.student.username, password=self.PASSWORD)
|
||||
@@ -283,8 +286,16 @@ class TestProgramDetails(ProgramsApiConfigMixin, SharedModuleStoreTestCase):
|
||||
def _assert_program_data_present(self, response):
|
||||
"""Verify that program data is present."""
|
||||
self.assertContains(response, 'programData')
|
||||
self.assertContains(response, 'programListingUrl')
|
||||
self.assertContains(response, self.data['name'])
|
||||
self.assertContains(response, reverse('program_listing_view'))
|
||||
self._assert_programs_tab_present(response)
|
||||
|
||||
def _assert_programs_tab_present(self, response):
|
||||
"""Verify that the programs tab is present in the nav."""
|
||||
soup = BeautifulSoup(response.content, 'html.parser')
|
||||
self.assertTrue(
|
||||
any(soup.find_all('a', class_='tab-nav-link', href=reverse('program_listing_view')))
|
||||
)
|
||||
|
||||
def test_login_required(self):
|
||||
"""
|
||||
|
||||
@@ -63,10 +63,12 @@ def program_details(request, program_id):
|
||||
raise Http404
|
||||
|
||||
program_data = utils.supplement_program_data(program_data, request.user)
|
||||
show_program_listing = ProgramsApiConfig.current().show_program_listing
|
||||
|
||||
context = {
|
||||
'program_data': program_data,
|
||||
'program_listing_url': reverse('program_listing_view'),
|
||||
'show_program_listing': show_program_listing,
|
||||
'nav_hidden': True,
|
||||
'disable_courseware_js': True,
|
||||
'uses_pattern_library': True
|
||||
|
||||
@@ -22,6 +22,7 @@ class ProgramsApiConfigMixin(object):
|
||||
'enable_studio_tab': True,
|
||||
'enable_certification': True,
|
||||
'xseries_ad_enabled': True,
|
||||
'program_listing_enabled': True,
|
||||
'program_details_enabled': True,
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user