diff --git a/analytics_dashboard/courses/tests/test_views/test_learners.py b/analytics_dashboard/courses/tests/test_views/test_learners.py index dddf1d947..6137affaa 100644 --- a/analytics_dashboard/courses/tests/test_views/test_learners.py +++ b/analytics_dashboard/courses/tests/test_views/test_learners.py @@ -77,8 +77,12 @@ def test_success(self): return response @override_waffle_flag(DISPLAY_LEARNER_ANALYTICS, active=False) - def test_success_if_hidden(self): - self.test_success() + def test_redirect_if_disabled(self): + learners_payload = {'arbitrary_learners_key': ['arbitrary_value_1', 'arbitrary_value_2']} + course_metadata_payload = {'arbitrary_metadata_value': {'arbitrary_value_1': 'arbitrary_value_2'}} + self._register_uris(200, learners_payload, 200, course_metadata_payload) + response = self._get() + self.assertRedirects(response, '/courses', target_status_code=301) @override_switch('enable_learner_download', active=False) def test_disable_learner_download_button(self): diff --git a/analytics_dashboard/courses/views/learners.py b/analytics_dashboard/courses/views/learners.py index 52c53d23f..239823e21 100644 --- a/analytics_dashboard/courses/views/learners.py +++ b/analytics_dashboard/courses/views/learners.py @@ -2,6 +2,7 @@ from urllib.parse import urlencode from django.conf import settings +from django.shortcuts import redirect from django.urls import reverse from django.utils.translation import ugettext_lazy as _ from requests.exceptions import ConnectionError as RequestsConnectionError @@ -9,6 +10,7 @@ from waffle import switch_is_active from analytics_dashboard.courses.views import CourseTemplateWithNavView, AnalyticsV0Mixin +from analytics_dashboard.courses.waffle import DISPLAY_LEARNER_ANALYTICS from analytics_dashboard.learner_analytics_api.v0.clients import LearnerAPIClient logger = logging.getLogger(__name__) @@ -25,6 +27,11 @@ class LearnersView(AnalyticsV0Mixin, CourseTemplateWithNavView): 'depth': '' } + def dispatch(self, request, *args, **kwargs): + if DISPLAY_LEARNER_ANALYTICS.is_enabled(): + return super().dispatch(request, *args, **kwargs) + return redirect('/courses') + def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['js_data']['course'].update({ diff --git a/tox.ini b/tox.ini index fa0d0fcd1..4c2d2ce0e 100644 --- a/tox.ini +++ b/tox.ini @@ -15,7 +15,6 @@ passenv = ENABLE_AUTO_AUTH ENABLE_OAUTH_TESTS ENABLE_ERROR_PAGE_TESTS - DISPLAY_LEARNER_ANALYTICS ENABLE_COURSE_LIST_FILTERS ENABLE_COURSE_LIST_PASSING COVERAGE_DIR