From 80abf159eeaea9be815693fd345eddf2255ce8cb Mon Sep 17 00:00:00 2001 From: Zia Fazal Date: Mon, 19 Oct 2015 18:58:29 +0500 Subject: [PATCH] removed entrance exam dependency on ENABLE_MKTG_SITE changes after feedback from Matt D set default value of entrance_exams feature flags to false --- .../tests/test_course_settings.py | 29 ++++++++++++++++++- cms/djangoapps/contentstore/views/course.py | 6 ++-- .../contentstore/views/entrance_exam.py | 7 +++++ cms/templates/settings.html | 6 ++-- 4 files changed, 43 insertions(+), 5 deletions(-) diff --git a/cms/djangoapps/contentstore/tests/test_course_settings.py b/cms/djangoapps/contentstore/tests/test_course_settings.py index 57a9718cf5..94ec075468 100644 --- a/cms/djangoapps/contentstore/tests/test_course_settings.py +++ b/cms/djangoapps/contentstore/tests/test_course_settings.py @@ -133,7 +133,11 @@ class CourseDetailsTestCase(CourseTestCase): def test_marketing_site_fetch(self): settings_details_url = get_url(self.course.id) - with mock.patch.dict('django.conf.settings.FEATURES', {'ENABLE_MKTG_SITE': True}): + with mock.patch.dict('django.conf.settings.FEATURES', { + 'ENABLE_MKTG_SITE': True, + 'ENTRANCE_EXAMS': False, + 'ENABLE_PREREQUISITE_COURSES': False + }): response = self.client.get_html(settings_details_url) self.assertNotContains(response, "Course Summary Page") self.assertNotContains(response, "Send a note to students via email") @@ -280,6 +284,7 @@ class CourseDetailsTestCase(CourseTestCase): self.assertContains(response, "Requirements") +@ddt.ddt class CourseDetailsViewTest(CourseTestCase): """ Tests for modifying content on the first course settings page (course dates, overview, etc.). @@ -410,6 +415,28 @@ class CourseDetailsViewTest(CourseTestCase): response = self.client.ajax_post(url, course_detail_json) self.assertEqual(400, response.status_code) + @ddt.data( + (False, False, False), + (True, False, True), + (False, True, False), + (True, True, True), + ) + def test_visibility_of_entrance_exam_section(self, feature_flags): + """ + Tests entrance exam section is available if ENTRANCE_EXAMS feature is enabled no matter any other + feature is enabled or disabled i.e ENABLE_MKTG_SITE. + """ + with patch.dict("django.conf.settings.FEATURES", { + 'ENTRANCE_EXAMS': feature_flags[0], + 'ENABLE_MKTG_SITE': feature_flags[1] + }): + course_details_url = get_url(self.course.id) + resp = self.client.get_html(course_details_url) + self.assertEqual( + feature_flags[2], + '

' in resp.content + ) + @ddt.ddt class CourseGradingTest(CourseTestCase): diff --git a/cms/djangoapps/contentstore/views/course.py b/cms/djangoapps/contentstore/views/course.py index e45783398a..e381c73aad 100644 --- a/cms/djangoapps/contentstore/views/course.py +++ b/cms/djangoapps/contentstore/views/course.py @@ -67,7 +67,8 @@ from contentstore.tasks import rerun_course from contentstore.views.entrance_exam import ( create_entrance_exam, update_entrance_exam, - delete_entrance_exam + delete_entrance_exam, + is_entrance_exams_enabled ) from .library import LIBRARIES_ENABLED @@ -927,7 +928,8 @@ def settings_handler(request, course_key_string): 'is_credit_course': False, 'show_min_grade_warning': False, 'enrollment_end_editable': enrollment_end_editable, - 'is_prerequisite_courses_enabled': is_prerequisite_courses_enabled() + 'is_prerequisite_courses_enabled': is_prerequisite_courses_enabled(), + 'is_entrance_exams_enabled': is_entrance_exams_enabled() } if is_prerequisite_courses_enabled(): courses, in_process_course_actions = get_courses_accessible_to_user(request) diff --git a/cms/djangoapps/contentstore/views/entrance_exam.py b/cms/djangoapps/contentstore/views/entrance_exam.py index 320ce3df3a..1e297101f0 100644 --- a/cms/djangoapps/contentstore/views/entrance_exam.py +++ b/cms/djangoapps/contentstore/views/entrance_exam.py @@ -54,6 +54,13 @@ def check_feature_enabled(feature_name): return _check_feature_enabled +def is_entrance_exams_enabled(): + """ + Returns a boolean indicating entrance exam feature is enable or not. + """ + return settings.FEATURES.get('ENTRANCE_EXAMS', False) + + @login_required @ensure_csrf_cookie @check_feature_enabled(feature_name='ENTRANCE_EXAMS') diff --git a/cms/templates/settings.html b/cms/templates/settings.html index 62ebbfc8de..c54d944228 100644 --- a/cms/templates/settings.html +++ b/cms/templates/settings.html @@ -361,7 +361,7 @@ CMS.URL.UPLOAD_ASSET = '${upload_asset_url}'; - % if about_page_editable: + % if about_page_editable or is_prerequisite_courses_enabled or is_entrance_exams_enabled:
@@ -371,11 +371,13 @@ CMS.URL.UPLOAD_ASSET = '${upload_asset_url}';
    + % if about_page_editable:
  1. ${_("Time spent on all course work")}
  2. + % endif % if is_prerequisite_courses_enabled:
  3. @@ -389,7 +391,7 @@ CMS.URL.UPLOAD_ASSET = '${upload_asset_url}';
  4. % endif - % if settings.FEATURES.get('ENTRANCE_EXAMS'): + % if is_entrance_exams_enabled:
  5. ${_("Entrance Exam")}