diff --git a/common/test/acceptance/tests/lms/test_library.py b/common/test/acceptance/tests/lms/test_library.py index 5eb18f423f..6b7d90d17c 100644 --- a/common/test/acceptance/tests/lms/test_library.py +++ b/common/test/acceptance/tests/lms/test_library.py @@ -21,7 +21,7 @@ SUBSECTION_NAME = 'Test Subsection' UNIT_NAME = 'Test Unit' -@attr(shard=7) +@attr(shard=10) class LibraryContentTestBase(UniqueCourseTest): """ Base class for library content block tests """ USERNAME = "STUDENT_TESTER" @@ -143,7 +143,7 @@ class LibraryContentTestBase(UniqueCourseTest): @ddt.ddt -@attr(shard=7) +@attr(shard=10) class LibraryContentTest(LibraryContentTestBase): """ Test courseware. @@ -196,7 +196,7 @@ class LibraryContentTest(LibraryContentTestBase): @ddt.ddt -@attr(shard=7) +@attr(shard=10) class StudioLibraryContainerCapaFilterTest(LibraryContentTestBase, TestWithSearchIndexMixin): """ Test Library Content block in LMS diff --git a/common/test/acceptance/tests/lms/test_lms_courseware.py b/common/test/acceptance/tests/lms/test_lms_courseware.py index 4130e4ad7e..a691a69d81 100644 --- a/common/test/acceptance/tests/lms/test_lms_courseware.py +++ b/common/test/acceptance/tests/lms/test_lms_courseware.py @@ -26,6 +26,7 @@ from ...pages.studio.auto_auth import AutoAuthPage from ...pages.studio.overview import CourseOutlinePage +@attr(shard=9) class CoursewareTest(UniqueCourseTest): """ Test courseware. @@ -125,6 +126,7 @@ class CoursewareTest(UniqueCourseTest): self.assertEqual(courseware_page_breadcrumb, expected_breadcrumb) +@attr(shard=9) @ddt.ddt class ProctoredExamTest(UniqueCourseTest): """ @@ -375,6 +377,7 @@ class ProctoredExamTest(UniqueCourseTest): self.assertFalse(self.course_outline.exam_review_rules_field_visible()) +@attr(shard=9) class CoursewareMultipleVerticalsTest(UniqueCourseTest, EventsTestMixin): """ Test courseware with multiple verticals @@ -661,6 +664,7 @@ class CoursewareMultipleVerticalsTest(UniqueCourseTest, EventsTestMixin): self.courseware_page.a11y_audit.check_for_accessibility_errors() +@attr(shard=9) class ProblemStateOnNavigationTest(UniqueCourseTest): """ Test courseware with problems in multiple verticals. @@ -821,6 +825,7 @@ class ProblemStateOnNavigationTest(UniqueCourseTest): self.assertEqual(before_meta, after_meta) +@attr(shard=9) class SubsectionHiddenAfterDueDateTest(UniqueCourseTest): """ Tests the "hide after due date" setting for diff --git a/common/test/acceptance/tests/lms/test_lms_instructor_dashboard.py b/common/test/acceptance/tests/lms/test_lms_instructor_dashboard.py index 9171c4b1cd..ab2cc8d06d 100644 --- a/common/test/acceptance/tests/lms/test_lms_instructor_dashboard.py +++ b/common/test/acceptance/tests/lms/test_lms_instructor_dashboard.py @@ -95,7 +95,7 @@ class BulkEmailTest(BaseInstructorDashboardTest): self.send_email_page.a11y_audit.check_for_accessibility_errors() -@attr(shard=7) +@attr(shard=10) class AutoEnrollmentWithCSVTest(BaseInstructorDashboardTest): """ End-to-end tests for Auto-Registration and enrollment functionality via CSV file. @@ -213,7 +213,7 @@ class AutoEnrollmentWithCSVTest(BaseInstructorDashboardTest): self.auto_enroll_section.a11y_audit.check_for_accessibility_errors() -@attr(shard=7) +@attr(shard=10) class ProctoredExamsTest(BaseInstructorDashboardTest): """ End-to-end tests for Proctoring Sections of the Instructor Dashboard. @@ -403,7 +403,7 @@ class ProctoredExamsTest(BaseInstructorDashboardTest): self.assertFalse(exam_attempts_section.is_student_attempt_visible) -@attr(shard=7) +@attr(shard=10) @ddt.ddt class EntranceExamGradeTest(BaseInstructorDashboardTest): """ @@ -551,7 +551,7 @@ class EntranceExamGradeTest(BaseInstructorDashboardTest): self.entrance_exam_admin.wait_for_task_history_table() -@attr(shard=7) +@attr(shard=10) class DataDownloadsTest(BaseInstructorDashboardTest): """ Bok Choy tests for the "Data Downloads" tab. @@ -669,7 +669,7 @@ class DataDownloadsTest(BaseInstructorDashboardTest): self.data_download_section.a11y_audit.check_for_accessibility_errors() -@attr(shard=7) +@attr(shard=10) @ddt.ddt class CertificatesTest(BaseInstructorDashboardTest): """ @@ -995,7 +995,7 @@ class CertificatesTest(BaseInstructorDashboardTest): self.certificates_section.a11y_audit.check_for_accessibility_errors() -@attr(shard=7) +@attr(shard=10) class CertificateInvalidationTest(BaseInstructorDashboardTest): """ Tests for Certificates functionality on instructor dashboard. diff --git a/common/test/acceptance/tests/lms/test_lms_problems.py b/common/test/acceptance/tests/lms/test_lms_problems.py index a7f17a1ba6..49a6056bb0 100644 --- a/common/test/acceptance/tests/lms/test_lms_problems.py +++ b/common/test/acceptance/tests/lms/test_lms_problems.py @@ -65,6 +65,7 @@ class ProblemsTest(UniqueCourseTest): return XBlockFixtureDesc('sequential', 'Test Subsection') +@attr(shard=9) class ProblemClarificationTest(ProblemsTest): """ Tests the element that can be used in problem XML. @@ -107,6 +108,7 @@ class ProblemClarificationTest(ProblemsTest): self.assertNotIn('strong', tooltip_text) +@attr(shard=9) class ProblemHintTest(ProblemsTest, EventsTestMixin): """ Base test class for problem hint tests. @@ -169,6 +171,7 @@ class ProblemHintTest(ProblemsTest, EventsTestMixin): raise NotImplementedError() +@attr(shard=9) class ProblemNotificationTests(ProblemsTest): """ Tests that the notifications are visible when expected. @@ -225,6 +228,7 @@ class ProblemNotificationTests(ProblemsTest): self.assertFalse(problem_page.is_save_notification_visible()) +@attr(shard=9) class ProblemFeedbackNotificationTests(ProblemsTest): """ Tests that the feedback notifications are visible when expected. @@ -262,6 +266,7 @@ class ProblemFeedbackNotificationTests(ProblemsTest): self.assertFalse(problem_page.is_feedback_message_notification_visible()) +@attr(shard=9) class ProblemSaveStatusUpdateTests(ProblemsTest): """ Tests the problem status updates correctly with an answer change and save. @@ -313,6 +318,7 @@ class ProblemSaveStatusUpdateTests(ProblemsTest): self.assertTrue(problem_page.is_save_notification_visible()) +@attr(shard=9) class ProblemSubmitButtonMaxAttemptsTest(ProblemsTest): """ Tests that the Submit button disables after the number of max attempts is reached. @@ -361,6 +367,7 @@ class ProblemSubmitButtonMaxAttemptsTest(ProblemsTest): problem_page.wait_for_submit_disabled() +@attr(shard=9) class ProblemSubmitButtonPastDueTest(ProblemsTest): """ Tests that the Submit button is disabled if it is past the due date. @@ -405,6 +412,7 @@ class ProblemSubmitButtonPastDueTest(ProblemsTest): problem_page.wait_for_submit_disabled() +@attr(shard=9) class ProblemExtendedHintTest(ProblemHintTest, EventsTestMixin): """ Test that extended hint features plumb through to the page html and tracking log. @@ -465,6 +473,7 @@ class ProblemExtendedHintTest(ProblemHintTest, EventsTestMixin): ) +@attr(shard=9) class ProblemHintWithHtmlTest(ProblemHintTest, EventsTestMixin): """ Tests that hints containing html get rendered properly @@ -525,6 +534,7 @@ class ProblemHintWithHtmlTest(ProblemHintTest, EventsTestMixin): ) +@attr(shard=9) class ProblemWithMathjax(ProblemsTest): """ Tests the used in problem @@ -584,6 +594,7 @@ class ProblemWithMathjax(ProblemsTest): problem_page.verify_mathjax_rendered_in_hint() +@attr(shard=9) class ProblemPartialCredit(ProblemsTest): """ Makes sure that the partial credit is appearing properly. @@ -618,6 +629,7 @@ class ProblemPartialCredit(ProblemsTest): self.assertTrue(problem_page.simpleprob_is_partially_correct()) +@attr(shard=9) class LogoutDuringAnswering(ProblemsTest): """ Tests for the scenario where a user is logged out (their session expires @@ -700,6 +712,7 @@ class LogoutDuringAnswering(ProblemsTest): self.assertEqual(problem_page.problem_name, 'TEST PROBLEM') +@attr(shard=9) class ProblemQuestionDescriptionTest(ProblemsTest): """TestCase Class to verify question and description rendering.""" descriptions = [ 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 7193df3f24..601ed82cfe 100644 --- a/common/test/acceptance/tests/lms/test_lms_user_preview.py +++ b/common/test/acceptance/tests/lms/test_lms_user_preview.py @@ -17,7 +17,7 @@ from xmodule.partitions.partitions import Group from textwrap import dedent -@attr(shard=3) +@attr(shard=10) class StaffViewTest(UniqueCourseTest): """ Tests that verify the staff view. @@ -55,7 +55,7 @@ class StaffViewTest(UniqueCourseTest): return staff_page -@attr(shard=3) +@attr(shard=10) class CourseWithoutContentGroupsTest(StaffViewTest): """ Setup for tests that have no content restricted to specific content groups. @@ -86,7 +86,7 @@ class CourseWithoutContentGroupsTest(StaffViewTest): ) -@attr(shard=3) +@attr(shard=10) class StaffViewToggleTest(CourseWithoutContentGroupsTest): """ Tests for the staff view toggle button. @@ -103,7 +103,7 @@ class StaffViewToggleTest(CourseWithoutContentGroupsTest): self.assertFalse(course_page.has_tab('Instructor')) -@attr(shard=3) +@attr(shard=10) class StaffDebugTest(CourseWithoutContentGroupsTest): """ Tests that verify the staff debug info. @@ -303,7 +303,7 @@ class CourseWithContentGroupsTest(StaffViewTest): ) ) - @attr(shard=3) + @attr(shard=10) def test_staff_sees_all_problems(self): """ Scenario: Staff see all problems diff --git a/common/test/acceptance/tests/lms/test_progress_page.py b/common/test/acceptance/tests/lms/test_progress_page.py index 9d4cc5ccba..ca47a26f76 100644 --- a/common/test/acceptance/tests/lms/test_progress_page.py +++ b/common/test/acceptance/tests/lms/test_progress_page.py @@ -124,6 +124,7 @@ class ProgressPageBaseTest(UniqueCourseTest): self.logout_page.visit() +@attr(shard=9) @ddt.ddt @js_defined('window.jQuery') class PersistentGradesTest(ProgressPageBaseTest): @@ -271,6 +272,7 @@ class PersistentGradesTest(ProgressPageBaseTest): self.assertEqual(self._get_section_score(), (0, 2)) +@attr(shard=9) class SubsectionGradingPolicyTest(ProgressPageBaseTest): """ Tests changing a subsection's 'graded' field diff --git a/common/test/acceptance/tests/studio/test_studio_components.py b/common/test/acceptance/tests/studio/test_studio_components.py index 226d15708b..26001b42a2 100644 --- a/common/test/acceptance/tests/studio/test_studio_components.py +++ b/common/test/acceptance/tests/studio/test_studio_components.py @@ -2,6 +2,7 @@ Acceptance tests for adding components in Studio. """ import ddt +from nose.plugins.attrib import attr from common.test.acceptance.tests.studio.base_studio_test import ContainerBase from common.test.acceptance.fixtures.course import XBlockFixtureDesc @@ -10,6 +11,7 @@ from common.test.acceptance.pages.studio.utils import add_component, add_compone from common.test.acceptance.pages.studio.settings_advanced import AdvancedSettingsPage +@attr(shard=9) @ddt.ddt class AdvancedProblemComponentTest(ContainerBase): """ @@ -68,6 +70,7 @@ class AdvancedProblemComponentTest(ContainerBase): self.assertEqual(problem.name, component) +@attr(shard=9) class ComponentTest(ContainerBase): """ Test class to add different components. diff --git a/common/test/acceptance/tests/studio/test_studio_help.py b/common/test/acceptance/tests/studio/test_studio_help.py index 21b786e58d..ffaa7008d1 100644 --- a/common/test/acceptance/tests/studio/test_studio_help.py +++ b/common/test/acceptance/tests/studio/test_studio_help.py @@ -2,7 +2,7 @@ Test the Studio help links. """ -from flaky import flaky +from nose.plugins.attrib import attr from unittest import skip from common.test.acceptance.fixtures.course import XBlockFixtureDesc @@ -36,6 +36,7 @@ from common.test.acceptance.pages.studio.import_export import ExportLibraryPage, from common.test.acceptance.pages.studio.auto_auth import AutoAuthPage +@attr(shard=10) class StudioHelpTest(StudioCourseTest): """Tests for Studio help.""" @@ -75,6 +76,7 @@ class StudioHelpTest(StudioCourseTest): ) +@attr(shard=10) class SignInHelpTest(AcceptanceTest): """ Tests help links on 'Sign In' page @@ -107,6 +109,7 @@ class SignInHelpTest(AcceptanceTest): ) +@attr(shard=10) class SignUpHelpTest(AcceptanceTest): """ Tests help links on 'Sign Up' page. @@ -139,6 +142,7 @@ class SignUpHelpTest(AcceptanceTest): ) +@attr(shard=10) class HomeHelpTest(StudioCourseTest): """ Tests help links on 'Home'(Courses tab) page. @@ -191,6 +195,7 @@ class HomeHelpTest(StudioCourseTest): ) +@attr(shard=10) class NewCourseHelpTest(AcceptanceTest): """ Test help links while creating a new course. @@ -247,6 +252,7 @@ class NewCourseHelpTest(AcceptanceTest): ) +@attr(shard=10) class NewLibraryHelpTest(AcceptanceTest): """ Test help links while creating a new library @@ -303,6 +309,7 @@ class NewLibraryHelpTest(AcceptanceTest): ) +@attr(shard=10) class LibraryTabHelpTest(AcceptanceTest): """ Test help links on the library tab present at dashboard. @@ -337,6 +344,7 @@ class LibraryTabHelpTest(AcceptanceTest): ) +@attr(shard=10) class LibraryHelpTest(StudioLibraryTest): """ Test help links on a Library page. @@ -415,6 +423,7 @@ class LibraryHelpTest(StudioLibraryTest): ) +@attr(shard=10) class LibraryImportHelpTest(StudioLibraryTest): """ Test help links on a Library import and export pages. @@ -466,6 +475,7 @@ class LibraryImportHelpTest(StudioLibraryTest): ) +@attr(shard=10) class LibraryExportHelpTest(StudioLibraryTest): """ Test help links on a Library export pages. @@ -517,6 +527,7 @@ class LibraryExportHelpTest(StudioLibraryTest): ) +@attr(shard=10) class NewProgramHelpTest(ProgramsConfigMixin, AcceptanceTest): """ Test help links on a 'New Program' page @@ -550,6 +561,7 @@ class NewProgramHelpTest(ProgramsConfigMixin, AcceptanceTest): ) +@attr(shard=10) class CourseOutlineHelpTest(StudioCourseTest): """ Tests help links on course outline page. @@ -606,6 +618,7 @@ class CourseOutlineHelpTest(StudioCourseTest): ) +@attr(shard=10) class CourseUpdateHelpTest(StudioCourseTest): """ Test help links on Course Update page @@ -640,6 +653,7 @@ class CourseUpdateHelpTest(StudioCourseTest): ) +@attr(shard=10) class AssetIndexHelpTest(StudioCourseTest): """ Test help links on Course 'Files & Uploads' page @@ -694,6 +708,7 @@ class AssetIndexHelpTest(StudioCourseTest): ) +@attr(shard=10) class CoursePagesHelpTest(StudioCourseTest): """ Test help links on Course 'Pages' page @@ -728,6 +743,7 @@ class CoursePagesHelpTest(StudioCourseTest): ) +@attr(shard=10) class UploadTextbookHelpTest(StudioCourseTest): """ Test help links on Course 'Textbooks' page @@ -782,6 +798,7 @@ class UploadTextbookHelpTest(StudioCourseTest): ) +@attr(shard=10) class StudioUnitHelpTest(ContainerBase): """ Tests help links on Unit page. @@ -831,6 +848,7 @@ class StudioUnitHelpTest(ContainerBase): ) +@attr(shard=10) class SettingsHelpTest(StudioCourseTest): """ Tests help links on Schedule and Details Settings page @@ -867,6 +885,7 @@ class SettingsHelpTest(StudioCourseTest): ) +@attr(shard=10) class GradingPageHelpTest(StudioCourseTest): """ Tests help links on Grading page @@ -903,6 +922,7 @@ class GradingPageHelpTest(StudioCourseTest): ) +@attr(shard=10) class CourseTeamSettingsHelpTest(StudioCourseTest): """ Tests help links on Course Team settings page @@ -939,6 +959,7 @@ class CourseTeamSettingsHelpTest(StudioCourseTest): ) +@attr(shard=10) class CourseGroupConfigurationHelpTest(StudioCourseTest): """ Tests help links on course Group Configurations settings page @@ -997,6 +1018,7 @@ class CourseGroupConfigurationHelpTest(StudioCourseTest): ) +@attr(shard=10) class AdvancedSettingHelpTest(StudioCourseTest): """ Tests help links on course Advanced Settings page. @@ -1033,6 +1055,7 @@ class AdvancedSettingHelpTest(StudioCourseTest): ) +@attr(shard=10) class CertificatePageHelpTest(StudioCourseTest): """ Tests help links on course Certificate settings page. @@ -1089,6 +1112,7 @@ class CertificatePageHelpTest(StudioCourseTest): ) +@attr(shard=10) class GroupExperimentConfigurationHelpTest(ContainerBase): """ Tests help links on course Group Configurations settings page @@ -1139,6 +1163,7 @@ class GroupExperimentConfigurationHelpTest(ContainerBase): ) +@attr(shard=10) class ToolsImportHelpTest(StudioCourseTest): """ Tests help links on tools import pages. @@ -1195,6 +1220,7 @@ class ToolsImportHelpTest(StudioCourseTest): ) +@attr(shard=10) class ToolsExportHelpTest(StudioCourseTest): """ Tests help links on tools export pages. @@ -1251,6 +1277,7 @@ class ToolsExportHelpTest(StudioCourseTest): ) +@attr(shard=10) class StudioWelcomeHelpTest(AcceptanceTest): """ Tests help link on 'Welcome' page ( User not logged in) diff --git a/common/test/acceptance/tests/studio/test_studio_settings.py b/common/test/acceptance/tests/studio/test_studio_settings.py index 6e94a8e117..3997319bc9 100644 --- a/common/test/acceptance/tests/studio/test_studio_settings.py +++ b/common/test/acceptance/tests/studio/test_studio_settings.py @@ -565,6 +565,7 @@ class StudioSubsectionSettingsA11yTest(StudioCourseTest): self.course_outline.a11y_audit.check_for_accessibility_errors() +@attr(shard=1) class StudioSettingsImageUploadTest(StudioCourseTest): """ Class to test course settings image uploads. @@ -602,6 +603,7 @@ class StudioSettingsImageUploadTest(StudioCourseTest): self.assertIn(file_to_upload, self.settings_page.get_uploaded_image_path('#video-thumbnail-image')) +@attr(shard=1) class CourseSettingsTest(StudioCourseTest): """ Class to test course settings. diff --git a/scripts/generic-ci-tests.sh b/scripts/generic-ci-tests.sh index fdb6452101..9f97530e7d 100755 --- a/scripts/generic-ci-tests.sh +++ b/scripts/generic-ci-tests.sh @@ -176,11 +176,11 @@ case "$TEST_SUITE" in paver test_bokchoy $PAVER_ARGS ;; - [1-8]) + [1-9]|10) paver test_bokchoy --attr="shard=$SHARD" $PAVER_ARGS ;; - 9|"noshard") + 11|"noshard") paver test_bokchoy --attr='!shard,a11y=False' $PAVER_ARGS ;;