diff --git a/common/test/acceptance/tests/discussion/test_cohort_management.py b/common/test/acceptance/tests/discussion/test_cohort_management.py index 124927b35c..07da9bdbfa 100644 --- a/common/test/acceptance/tests/discussion/test_cohort_management.py +++ b/common/test/acceptance/tests/discussion/test_cohort_management.py @@ -9,6 +9,7 @@ from pymongo import MongoClient from pytz import UTC, utc from bok_choy.promise import EmptyPromise +from nose.plugins.attrib import attr from .helpers import CohortTestMixin from ..helpers import UniqueCourseTest, create_user_partition_json from xmodule.partitions.partitions import Group @@ -21,6 +22,7 @@ from ...pages.studio.settings_group_configurations import GroupConfigurationsPag import uuid +@attr('shard_3') class CohortConfigurationTest(UniqueCourseTest, CohortTestMixin): """ Tests for cohort management on the LMS Instructor Dashboard @@ -464,6 +466,7 @@ class CohortConfigurationTest(UniqueCourseTest, CohortTestMixin): self.assertEquals(expected_message, messages[0]) +@attr('shard_3') class CohortContentGroupAssociationTest(UniqueCourseTest, CohortTestMixin): """ Tests for linking between content groups and cohort in the instructor dashboard. diff --git a/common/test/acceptance/tests/lms/test_library.py b/common/test/acceptance/tests/lms/test_library.py index cb4fd238de..4f5227ee04 100644 --- a/common/test/acceptance/tests/lms/test_library.py +++ b/common/test/acceptance/tests/lms/test_library.py @@ -5,6 +5,7 @@ End-to-end tests for LibraryContent block in LMS import ddt import textwrap +from nose.plugins.attrib import attr from ..helpers import UniqueCourseTest from ...pages.studio.auto_auth import AutoAuthPage from ...pages.studio.overview import CourseOutlinePage @@ -20,6 +21,7 @@ SUBSECTION_NAME = 'Test Subsection' UNIT_NAME = 'Test Unit' +@attr('shard_3') class LibraryContentTestBase(UniqueCourseTest): """ Base class for library content block tests """ USERNAME = "STUDENT_TESTER" @@ -140,6 +142,7 @@ class LibraryContentTestBase(UniqueCourseTest): @ddt.ddt +@attr('shard_3') class LibraryContentTest(LibraryContentTestBase): """ Test courseware. @@ -191,6 +194,7 @@ class LibraryContentTest(LibraryContentTestBase): @ddt.ddt +@attr('shard_3') class StudioLibraryContainerCapaFilterTest(LibraryContentTestBase): """ Test Library Content block in LMS diff --git a/common/test/acceptance/tests/lms/test_lms_user_preview.py b/common/test/acceptance/tests/lms/test_lms_user_preview.py index ff23534ee3..b8f92d5364 100644 --- a/common/test/acceptance/tests/lms/test_lms_user_preview.py +++ b/common/test/acceptance/tests/lms/test_lms_user_preview.py @@ -3,6 +3,7 @@ Tests the "preview" selector in the LMS that allows changing between Staff, Student, and Content Groups. """ +from nose.plugins.attrib import attr from ..helpers import UniqueCourseTest, create_user_partition_json from ...pages.studio.auto_auth import AutoAuthPage from ...pages.lms.courseware import CoursewarePage @@ -13,6 +14,7 @@ from xmodule.partitions.partitions import Group from textwrap import dedent +@attr('shard_3') class StaffViewTest(UniqueCourseTest): """ Tests that verify the staff view. @@ -50,6 +52,7 @@ class StaffViewTest(UniqueCourseTest): return staff_page +@attr('shard_3') class CourseWithoutContentGroupsTest(StaffViewTest): """ Setup for tests that have no content restricted to specific content groups. @@ -80,6 +83,7 @@ class CourseWithoutContentGroupsTest(StaffViewTest): ) +@attr('shard_3') class StaffViewToggleTest(CourseWithoutContentGroupsTest): """ Tests for the staff view toggle button. @@ -96,6 +100,7 @@ class StaffViewToggleTest(CourseWithoutContentGroupsTest): self.assertFalse(course_page.has_tab('Instructor')) +@attr('shard_3') class StaffDebugTest(CourseWithoutContentGroupsTest): """ Tests that verify the staff debug info. @@ -227,6 +232,7 @@ class StaffDebugTest(CourseWithoutContentGroupsTest): 'for user {}'.format(self.USERNAME), msg) +@attr('shard_3') class CourseWithContentGroupsTest(StaffViewTest): """ Verifies that changing the "View this course as" selector works properly for content groups. diff --git a/common/test/acceptance/tests/studio/test_studio_outline.py b/common/test/acceptance/tests/studio/test_studio_outline.py index a19dc1a5bc..044d5ed8d4 100644 --- a/common/test/acceptance/tests/studio/test_studio_outline.py +++ b/common/test/acceptance/tests/studio/test_studio_outline.py @@ -5,6 +5,7 @@ from datetime import datetime, timedelta import itertools from pytz import UTC from bok_choy.promise import EmptyPromise +from nose.plugins.attrib import attr from ...pages.studio.overview import CourseOutlinePage, ContainerPage, ExpandCollapseLinkState from ...pages.studio.utils import add_discussion, drag, verify_ordering @@ -67,6 +68,7 @@ class CourseOutlineTest(StudioCourseTest): verify_ordering(self, outline_page, expected_ordering) +@attr('shard_3') class CourseOutlineDragAndDropTest(CourseOutlineTest): """ Tests of drag and drop within the outline page. @@ -121,6 +123,7 @@ class CourseOutlineDragAndDropTest(CourseOutlineTest): self.drag_and_verify(self.seq_1_vert_2_handle, self.chap_1_seq_2_handle, expected_ordering, course_outline_page) +@attr('shard_3') class WarningMessagesTest(CourseOutlineTest): """ Feature: Warning messages on sections, subsections, and units @@ -325,6 +328,7 @@ class WarningMessagesTest(CourseOutlineTest): unit.toggle_staff_lock() +@attr('shard_3') class EditingSectionsTest(CourseOutlineTest): """ Feature: Editing Release date, Due date and grading type. @@ -472,6 +476,7 @@ class EditingSectionsTest(CourseOutlineTest): self.assertIn(release_text, self.course_outline_page.section_at(0).subsection_at(0).release_date) +@attr('shard_3') class StaffLockTest(CourseOutlineTest): """ Feature: Sections, subsections, and units can be locked and unlocked from the course outline. @@ -853,6 +858,7 @@ class StaffLockTest(CourseOutlineTest): self._remove_staff_lock_and_verify_warning(subsection, False) +@attr('shard_3') class EditNamesTest(CourseOutlineTest): """ Feature: Click-to-edit section/subsection names @@ -968,6 +974,7 @@ class EditNamesTest(CourseOutlineTest): self.assertTrue(self.course_outline_page.section_at(0).is_collapsed) +@attr('shard_3') class CreateSectionsTest(CourseOutlineTest): """ Feature: Create new sections/subsections/units @@ -1054,6 +1061,7 @@ class CreateSectionsTest(CourseOutlineTest): self.assertTrue(unit_page.is_inline_editing_display_name()) +@attr('shard_3') class DeleteContentTest(CourseOutlineTest): """ Feature: Deleting sections/subsections/units @@ -1165,6 +1173,7 @@ class DeleteContentTest(CourseOutlineTest): self.assertTrue(self.course_outline_page.has_no_content_message) +@attr('shard_3') class ExpandCollapseMultipleSectionsTest(CourseOutlineTest): """ Feature: Courses with multiple sections can expand and collapse all sections. @@ -1296,6 +1305,7 @@ class ExpandCollapseMultipleSectionsTest(CourseOutlineTest): self.verify_all_sections(collapsed=False) +@attr('shard_3') class ExpandCollapseSingleSectionTest(CourseOutlineTest): """ Feature: Courses with a single section can expand and collapse all sections. @@ -1335,6 +1345,7 @@ class ExpandCollapseSingleSectionTest(CourseOutlineTest): self.assertFalse(self.course_outline_page.section_at(0).subsection_at(1).is_collapsed) +@attr('shard_3') class ExpandCollapseEmptyTest(CourseOutlineTest): """ Feature: Courses with no sections initially can expand and collapse all sections after addition. @@ -1372,6 +1383,7 @@ class ExpandCollapseEmptyTest(CourseOutlineTest): self.assertFalse(self.course_outline_page.section_at(0).is_collapsed) +@attr('shard_3') class DefaultStatesEmptyTest(CourseOutlineTest): """ Feature: Misc course outline default states/actions when starting with an empty course @@ -1396,6 +1408,7 @@ class DefaultStatesEmptyTest(CourseOutlineTest): self.assertTrue(self.course_outline_page.bottom_add_section_button.is_present()) +@attr('shard_3') class DefaultStatesContentTest(CourseOutlineTest): """ Feature: Misc course outline default states/actions when starting with a course with content @@ -1420,6 +1433,7 @@ class DefaultStatesContentTest(CourseOutlineTest): self.assertEqual(courseware.xblock_component_type(2), 'discussion') +@attr('shard_3') class UnitNavigationTest(CourseOutlineTest): """ Feature: Navigate to units @@ -1440,6 +1454,7 @@ class UnitNavigationTest(CourseOutlineTest): self.assertTrue(unit.is_browser_on_page) +@attr('shard_3') class PublishSectionTest(CourseOutlineTest): """ Feature: Publish sections. diff --git a/scripts/all-tests.sh b/scripts/all-tests.sh index 7457e99e49..9e5c5c6309 100755 --- a/scripts/all-tests.sh +++ b/scripts/all-tests.sh @@ -175,12 +175,17 @@ END ;; "3") - paver test_bokchoy --extra_args="-a shard_1=False,shard_2=False" + paver test_bokchoy --extra_args="-a 'shard_3'" + paver bokchoy_coverage + ;; + + "4") + paver test_bokchoy --extra_args="-a shard_1=False,shard_2=False,shard_3=False" paver bokchoy_coverage ;; # Default case because if we later define another bok-choy shard on Jenkins - # (e.g. Shard 4) in the multi-config project and expand this file + # (e.g. Shard 5) in the multi-config project and expand this file # with an additional case condition, old branches without that commit # would not execute any tests on the worker assigned to that shard # and thus their build would fail.