Commit a00d9ad3 by Douglas Hall Committed by GitHub

Merge pull request #15484 from edx/afzaledx/LEARNER-1146-patch

Put the program_types filter under the waffle switch
parents 8fb86474 b8a310d5
......@@ -12,6 +12,7 @@ from urlparse import parse_qs, urlsplit, urlunsplit
import analytics
import edx_oauth2_provider
import waffle
from django.conf import settings
from django.contrib import messages
from django.contrib.auth import authenticate, login, logout
......@@ -174,6 +175,7 @@ def index(request, extra_context=None, user=AnonymousUser()):
if extra_context is None:
extra_context = {}
programs_list = []
courses = get_courses(user)
if configuration_helpers.get_value(
......@@ -207,7 +209,11 @@ def index(request, extra_context=None, user=AnonymousUser()):
# Insert additional context for use in the template
context.update(extra_context)
context['programs_list'] = get_programs_with_type(include_hidden=False)
# Add marketable programs to the context if the multi-tenant programs switch is enabled.
if waffle.switch_is_active('get-multitenant-programs'):
programs_list = get_programs_with_type(include_hidden=False)
context['programs_list'] = programs_list
return render_to_response('index.html', context)
......
......@@ -14,6 +14,7 @@ from milestones.tests.utils import MilestonesTestCaseMixin
from mock import Mock, patch
from nose.plugins.attrib import attr
from pytz import UTC
from waffle.testutils import override_switch
from branding.views import index
from courseware.tests.helpers import LoginEnrollmentTestCase
......@@ -297,18 +298,19 @@ class IndexPageProgramsTests(SiteMixin, ModuleStoreTestCase):
"""
Tests for Programs List in Marketing Pages.
"""
@ddt.data([], ['fake_program_type'])
def test_get_programs_with_type_called(self, program_types):
@ddt.data(True, False)
def test_get_programs_with_type_called(self, multitenant_programs_enabled):
views = [
(reverse('root'), 'student.views.get_programs_with_type'),
(reverse('branding.views.courses'), 'courseware.views.views.get_programs_with_type'),
]
for url, dotted_path in views:
with patch(dotted_path) as mock_get_programs_with_type:
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
if program_types:
mock_get_programs_with_type.assert_called_once()
else:
mock_get_programs_with_type.assert_not_called()
with override_switch('get-multitenant-programs', multitenant_programs_enabled):
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
if multitenant_programs_enabled:
mock_get_programs_with_type.assert_called_once()
else:
mock_get_programs_with_type.assert_not_called()
......@@ -8,6 +8,7 @@ from collections import OrderedDict, namedtuple
from datetime import datetime, timedelta
import analytics
import waffle
from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import AnonymousUser, User
......@@ -155,7 +156,9 @@ def courses(request):
else:
courses_list = sort_by_announcement(courses_list)
programs_list = get_programs_with_type(include_hidden=False)
# Add marketable programs to the context if the multi-tenant programs switch is enabled.
if waffle.switch_is_active('get-multitenant-programs'):
programs_list = get_programs_with_type(include_hidden=False)
return render_to_response(
"courseware/courses.html",
......
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