Commit b8a310d5 by Afzal Wali Committed by Douglas Hall

Put the program_types filter under the waffle switch

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