From ac7e6bec92bbceead424b31fdec90fb450a75c6a Mon Sep 17 00:00:00 2001 From: Robert Raposa Date: Fri, 24 Mar 2017 13:44:37 -0400 Subject: [PATCH] Refactor to navigate directly to courseware page. --- common/test/acceptance/tests/lms/test_lms.py | 6 ++--- .../tests/lms/test_lms_acid_xblock.py | 21 ++++----------- .../tests/lms/test_lms_courseware.py | 22 +++++++++++---- .../tests/video/test_video_module.py | 27 +++++++++---------- lms/djangoapps/courseware/tests/test_views.py | 1 + 5 files changed, 38 insertions(+), 39 deletions(-) diff --git a/common/test/acceptance/tests/lms/test_lms.py b/common/test/acceptance/tests/lms/test_lms.py index b5d9790a2f..45a7af9715 100644 --- a/common/test/acceptance/tests/lms/test_lms.py +++ b/common/test/acceptance/tests/lms/test_lms.py @@ -1040,8 +1040,7 @@ class TooltipTest(UniqueCourseTest): """ Verify that tooltips are displayed when you hover over the sequence nav bar. """ - self.course_info_page.visit() - self.tab_nav.go_to_tab('Course') + self.courseware_page.visit() self.courseware_page.verify_tooltips_displayed() @@ -1189,8 +1188,7 @@ class ProblemExecutionTest(UniqueCourseTest): def test_python_execution_in_problem(self): # Navigate to the problem page - self.course_info_page.visit() - self.tab_nav.go_to_tab('Course') + self.courseware_page.visit() self.courseware_page.nav.go_to_section('Test Section', 'Test Subsection') problem_page = ProblemPage(self.browser) diff --git a/common/test/acceptance/tests/lms/test_lms_acid_xblock.py b/common/test/acceptance/tests/lms/test_lms_acid_xblock.py index 1179a645d5..f064a73610 100644 --- a/common/test/acceptance/tests/lms/test_lms_acid_xblock.py +++ b/common/test/acceptance/tests/lms/test_lms_acid_xblock.py @@ -7,8 +7,7 @@ from unittest import expectedFailure from common.test.acceptance.tests.helpers import UniqueCourseTest from common.test.acceptance.pages.lms.auto_auth import AutoAuthPage -from common.test.acceptance.pages.lms.course_info import CourseInfoPage -from common.test.acceptance.pages.lms.tab_nav import TabNavPage +from common.test.acceptance.pages.lms.courseware import CoursewarePage from common.test.acceptance.pages.xblock.acid import AcidView from common.test.acceptance.fixtures.course import CourseFixture, XBlockFixtureDesc @@ -30,8 +29,7 @@ class XBlockAcidBase(UniqueCourseTest): AutoAuthPage(self.browser, course_id=self.course_id).visit() - self.course_info_page = CourseInfoPage(self.browser, self.course_id) - self.tab_nav = TabNavPage(self.browser) + self.courseware_page = CoursewarePage(self.browser, self.course_id) def validate_acid_block_view(self, acid_block): """ @@ -73,10 +71,7 @@ class XBlockAcidNoChildTest(XBlockAcidBase): """ Verify that all expected acid block tests pass in the lms. """ - - self.course_info_page.visit() - self.tab_nav.go_to_tab('Course') - + self.courseware_page.visit() acid_block = AcidView(self.browser, '.xblock-student_view[data-block-type=acid]') self.validate_acid_block_view(acid_block) @@ -117,10 +112,7 @@ class XBlockAcidChildTest(XBlockAcidBase): """ Verify that all expected acid block tests pass in the lms. """ - - self.course_info_page.visit() - self.tab_nav.go_to_tab('Course') - + self.courseware_page.visit() acid_parent_block = AcidView(self.browser, '.xblock-student_view[data-block-type=acid_parent]') self.validate_acid_parent_block_view(acid_parent_block) @@ -157,10 +149,7 @@ class XBlockAcidAsideTest(XBlockAcidBase): """ Verify that all expected acid block tests pass in the lms. """ - - self.course_info_page.visit() - self.tab_nav.go_to_tab('Course') - + self.courseware_page.visit() acid_aside = AcidView(self.browser, '.xblock_asides-v1-student_view[data-block-type=acid_aside]') self.validate_acid_aside_view(acid_aside) diff --git a/common/test/acceptance/tests/lms/test_lms_courseware.py b/common/test/acceptance/tests/lms/test_lms_courseware.py index aa8465fbdd..70d04c8bb0 100644 --- a/common/test/acceptance/tests/lms/test_lms_courseware.py +++ b/common/test/acceptance/tests/lms/test_lms_courseware.py @@ -377,16 +377,15 @@ class ProctoredExamTest(UniqueCourseTest): self.assertFalse(self.studio_course_outline.exam_review_rules_field_visible()) -@attr(shard=9) -class CoursewareMultipleVerticalsTest(UniqueCourseTest, EventsTestMixin): +class CoursewareMultipleVerticalsTestBase(UniqueCourseTest, EventsTestMixin): """ - Test courseware with multiple verticals + Base class with setup for testing courseware with multiple verticals """ USERNAME = "STUDENT_TESTER" EMAIL = "student101@example.com" def setUp(self): - super(CoursewareMultipleVerticalsTest, self).setUp() + super(CoursewareMultipleVerticalsTestBase, self).setUp() self.courseware_page = CoursewarePage(self.browser, self.course_id) self.course_home_page = CourseHomePage(self.browser, self.course_id) @@ -435,6 +434,13 @@ class CoursewareMultipleVerticalsTest(UniqueCourseTest, EventsTestMixin): AutoAuthPage(self.browser, username=self.USERNAME, email=self.EMAIL, course_id=self.course_id, staff=False).visit() + +@attr(shard=9) +class CoursewareMultipleVerticalsTest(CoursewareMultipleVerticalsTestBase): + """ + Test courseware with multiple verticals + """ + @skip('Disable temporarily to get course bookmarks out') def test_navigation_buttons(self): self.courseware_page.visit() @@ -661,7 +667,13 @@ class CoursewareMultipleVerticalsTest(UniqueCourseTest, EventsTestMixin): ).visit() self.assertIn('html 2 dummy body', html2_page.get_selected_tab_content()) - @attr('a11y') + +@attr('a11y') +class CoursewareMultipleVerticalsA11YTest(CoursewareMultipleVerticalsTestBase): + """ + Test a11y for courseware with multiple verticals + """ + def test_courseware_a11y(self): """ Run accessibility audit for the problem type. diff --git a/common/test/acceptance/tests/video/test_video_module.py b/common/test/acceptance/tests/video/test_video_module.py index 4613f22ce9..b8f1d2b3de 100644 --- a/common/test/acceptance/tests/video/test_video_module.py +++ b/common/test/acceptance/tests/video/test_video_module.py @@ -52,7 +52,7 @@ class VideoBaseTest(UniqueCourseTest): self.video = VideoPage(self.browser) self.tab_nav = TabNavPage(self.browser) - self.courseware = CoursewarePage(self.browser, self.course_id) + self.courseware_page = CoursewarePage(self.browser, self.course_id) self.course_info_page = CourseInfoPage(self.browser, self.course_id) self.auth_page = AutoAuthPage(self.browser, course_id=self.course_id) @@ -135,8 +135,7 @@ class VideoBaseTest(UniqueCourseTest): """ Register for the course and navigate to the video unit """ self.auth_page.visit() self.user_info = self.auth_page.user_info - self.course_info_page.visit() - self.tab_nav.go_to_tab('Course') + self.courseware_page.visit() def _navigate_to_courseware_video_and_render(self): """ Wait for the video player to render """ @@ -194,7 +193,7 @@ class VideoBaseTest(UniqueCourseTest): """ Navigate to sequential specified by `video_display_name` """ - self.courseware.go_to_sequential_position(position) + self.courseware_page.go_to_sequential_position(position) self.video.wait_for_video_player_render() @@ -529,7 +528,7 @@ class YouTubeVideoTest(VideoBaseTest): self.assertTrue(self.video.downloaded_transcript_contains_text(file_type, search_text)) # open vertical containing video "C" - self.courseware.nav.go_to_vertical('Test Vertical-2') + self.courseware_page.nav.go_to_vertical('Test Vertical-2') # menu "download_transcript" doesn't exist self.assertFalse(self.video.is_menu_present('download_transcript')) @@ -676,17 +675,17 @@ class YouTubeVideoTest(VideoBaseTest): self.navigate_to_video() # select the "2.0" speed on video "A" - self.courseware.nav.go_to_vertical('Test Vertical-0') + self.courseware_page.nav.go_to_vertical('Test Vertical-0') self.video.wait_for_video_player_render() self.video.speed = '2.0' # select the "0.50" speed on video "B" - self.courseware.nav.go_to_vertical('Test Vertical-1') + self.courseware_page.nav.go_to_vertical('Test Vertical-1') self.video.wait_for_video_player_render() self.video.speed = '0.50' # open video "C" - self.courseware.nav.go_to_vertical('Test Vertical-2') + self.courseware_page.nav.go_to_vertical('Test Vertical-2') self.video.wait_for_video_player_render() # Since the playback speed was set to .5 in "B", this video will also be impacted @@ -695,7 +694,7 @@ class YouTubeVideoTest(VideoBaseTest): self.video.verify_speed_changed('0.75x') # go to the vertical containing video "A" - self.courseware.nav.go_to_vertical('Test Vertical-0') + self.courseware_page.nav.go_to_vertical('Test Vertical-0') # Video "A" should still play at speed 2.0 because it was explicitly set to that. self.assertEqual(self.video.speed, '2.0x') @@ -704,7 +703,7 @@ class YouTubeVideoTest(VideoBaseTest): self.video.reload_page() # go to the vertical containing video "A" - self.courseware.nav.go_to_vertical('Test Vertical-0') + self.courseware_page.nav.go_to_vertical('Test Vertical-0') # check if video "A" should start playing at speed "2.0" self.assertEqual(self.video.speed, '2.0x') @@ -713,13 +712,13 @@ class YouTubeVideoTest(VideoBaseTest): self.video.speed = '1.0' # go to the vertical containing "B" - self.courseware.nav.go_to_vertical('Test Vertical-1') + self.courseware_page.nav.go_to_vertical('Test Vertical-1') # Video "B" should still play at speed .5 because it was explicitly set to that. self.assertEqual(self.video.speed, '0.50x') # go to the vertical containing video "C" - self.courseware.nav.go_to_vertical('Test Vertical-2') + self.courseware_page.nav.go_to_vertical('Test Vertical-2') # The change of speed for Video "A" should impact Video "C" because it still has # not been explicitly set to a speed. @@ -912,13 +911,13 @@ class YouTubeVideoTest(VideoBaseTest): execute_video_steps(['A']) # go to second sequential position - self.courseware.go_to_sequential_position(2) + self.courseware_page.go_to_sequential_position(2) execute_video_steps(tab2_video_names) # go back to first sequential position # we are again playing tab 1 videos to ensure that switching didn't broke some video functionality. - self.courseware.go_to_sequential_position(1) + self.courseware_page.go_to_sequential_position(1) execute_video_steps(tab1_video_names) self.video.browser.refresh() diff --git a/lms/djangoapps/courseware/tests/test_views.py b/lms/djangoapps/courseware/tests/test_views.py index 63c93c751a..fbfda4228d 100644 --- a/lms/djangoapps/courseware/tests/test_views.py +++ b/lms/djangoapps/courseware/tests/test_views.py @@ -957,6 +957,7 @@ class ViewsTestCase(ModuleStoreTestCase): response = self.client.get(reverse('info', args=[course_id]), HTTP_REFERER='foo') self.assertEqual(response.status_code, 200) + # TODO: TNL-6387: Remove test def test_accordion(self): """ This needs a response_context, which is not included in the render_accordion's main method