ECOM-4215 adding setup for new program details page

This commit is contained in:
AlasdairSwan
2016-05-09 14:52:48 -04:00
parent 91d049794b
commit bc5daffc96
16 changed files with 213 additions and 10 deletions

View File

@@ -8,7 +8,7 @@ from urlparse import urljoin
from django.conf import settings
from django.core.urlresolvers import reverse
from django.test import override_settings
from django.test import override_settings, TestCase
from edx_oauth2_provider.tests.factories import ClientFactory
from opaque_keys.edx import locator
from provider.constants import CONFIDENTIAL
@@ -205,3 +205,39 @@ class TestProgramListing(
for certificate in self._expected_credentials_data():
self.assertNotContains(response, certificate['display_name'])
self.assertNotContains(response, certificate['credential_url'])
@unittest.skipUnless(settings.ROOT_URLCONF == 'lms.urls', 'Test only valid in lms')
@override_settings(MKTG_URLS={'ROOT': 'http://edx.org'})
class TestProgramDetails(ProgramsApiConfigMixin, TestCase):
"""
Unit tests for the program details page
"""
def setUp(self):
super(TestProgramDetails, self).setUp()
self.user = UserFactory()
self.details_page = reverse('program_details_view', args=['123'])
def test_login_required(self):
"""
Verify that login is required to access the page.
"""
self.create_programs_config()
response = self.client.get(self.details_page)
self.assertRedirects(
response,
'{}?next={}'.format(reverse('signin_user'), self.details_page)
)
self.client.login(username=self.user.username, password='test')
response = self.client.get(self.details_page)
self.assertEquals(response.status_code, 200)
def test_404_if_disabled(self):
"""
Verify that the page 404s if disabled.
"""
self.create_programs_config(program_details_enabled=False)
self.client.login(username=self.user.username, password='test')
response = self.client.get(self.details_page)
self.assertEquals(response.status_code, 404)

View File

@@ -6,5 +6,6 @@ from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^programs/(?P<program_uuid>[0-9a-f-]+)/$', views.program_details, name='program_details_view'),
url(r'^programs/$', views.view_programs, name='program_listing_view'),
]

View File

@@ -45,3 +45,20 @@ def view_programs(request):
}
return render_to_response('learner_dashboard/programs.html', context)
@login_required
@require_GET
def program_details(request, program_uuid): # pylint: disable=unused-argument
"""View programs in which the user is engaged."""
show_program_details = ProgramsApiConfig.current().show_program_details
if not show_program_details:
raise Http404
context = {
'nav_hidden': True,
'disable_courseware_js': True,
'uses_pattern_library': True
}
return render_to_response('learner_dashboard/program_details.html', context)