Commit ffd1e29d by Renzo Lucioni

Show Programs tab on program detail pages

parent f8be1ed1
......@@ -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,
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment