From 8d25274cec65035cba567314b2e4a3351e785f0d Mon Sep 17 00:00:00 2001 From: Calen Pennington Date: Mon, 24 Feb 2020 10:18:08 -0500 Subject: [PATCH] Revert "Allow due-dates for self-paced courses in the course outline" --- .../tests/lms/test_lms_course_home.py | 70 +++++++++++++++++++ .../course-outline-fragment.html | 2 +- 2 files changed, 71 insertions(+), 1 deletion(-) diff --git a/common/test/acceptance/tests/lms/test_lms_course_home.py b/common/test/acceptance/tests/lms/test_lms_course_home.py index bee5448968..cef78f8ba3 100644 --- a/common/test/acceptance/tests/lms/test_lms_course_home.py +++ b/common/test/acceptance/tests/lms/test_lms_course_home.py @@ -167,3 +167,73 @@ class CourseHomeA11yTest(CourseHomeBaseTest): ] }) course_search_results_page.a11y_audit.check_for_accessibility_errors() + + +class CourseOutlineTest(UniqueCourseTest): + """ + Test Suite to verify the course outline page on the LMS. + """ + USERNAME = "STUDENT_TESTER" + EMAIL = "student101@example.com" + + def setUp(self): + """ + Initialize pages and install a course fixture. + """ + super(CourseOutlineTest, self).setUp() + + self.course_home_page = CourseHomePage(self.browser, self.course_id) + # Install a course with sections and problems + self.course_fix = CourseFixture( + self.course_info['org'], + self.course_info['number'], + self.course_info['run'], + self.course_info['display_name'], + start_date=datetime.now() + timedelta(days=-10), + end_date=datetime.now() + timedelta(days=10) + ) + + self.course_fix.add_children( + XBlockFixtureDesc('chapter', 'Test Section').add_children( + XBlockFixtureDesc('sequential', 'Test Subsection', metadata={ + 'due': (datetime.now()).isoformat(), + 'format': 'Homework' + }).add_children( + XBlockFixtureDesc('problem', 'Test Problem', data=load_data_str('multiple_choice.xml')), + ) + ), + ).install() + # Auto-auth register for the course. + auto_auth(self.browser, self.USERNAME, self.EMAIL, False, self.course_id) + + def change_course_pacing_to_self_paced(self): + """ + Change the course pacing from Instructor Paced to Self-paced course + for a live course. + """ + self.course_fix.add_course_details({'start_date': (datetime.now() + timedelta(days=5))}) + self.course_fix.configure_course() + self.course_fix.add_course_details({'self_paced': True}) + self.course_fix.configure_course() + self.course_fix.add_course_details({'start_date': (datetime.now() + timedelta(days=-10))}) + self.course_fix.configure_course() + + def test_outline_when_pacing_changed_to_self_paced(self): + """ + Scenario: Ensure that due dates are not displayed on the course outline page + when switched to self-paced mode from instructor-paced. + + Given an instructor paced course with a due graded content + Visit the course outline page + Verify the due date visibility + Change the course pacing to self-paced + Visit the course outline page again + Verify that due date is not visible + """ + self.course_home_page.visit() + due_date = self.course_home_page.outline.get_subsection_due_date() + self.assertIn(str(datetime.now().year), due_date) + self.change_course_pacing_to_self_paced() + self.course_home_page.visit() + due_date = self.course_home_page.outline.get_subsection_due_date() + self.assertNotIn(str(datetime.now().year), due_date) diff --git a/openedx/features/course_experience/templates/course_experience/course-outline-fragment.html b/openedx/features/course_experience/templates/course_experience/course-outline-fragment.html index 8fabf69182..2d913abf96 100644 --- a/openedx/features/course_experience/templates/course_experience/course-outline-fragment.html +++ b/openedx/features/course_experience/templates/course_experience/course-outline-fragment.html @@ -91,7 +91,7 @@ self_paced = context.get('self_paced', False) ## ## Exam subsections expose exam status message field as well as a status icon <% - if subsection.get('due') is None: + if subsection.get('due') is None or self_paced: # examples: Homework, Lab, etc. data_string = subsection.get('format') data_datetime = ""