Commit 31841bdc by Ben Patterson

Merge pull request #11271 from edx/benp/9-bokchoy-shards

Benp/9 bokchoy shards
parents d8b902ad d0f6aee3
...@@ -21,7 +21,7 @@ import unicodecsv ...@@ -21,7 +21,7 @@ import unicodecsv
import uuid import uuid
@attr('shard_6') @attr('shard_8')
class CohortConfigurationTest(EventsTestMixin, UniqueCourseTest, CohortTestMixin): class CohortConfigurationTest(EventsTestMixin, UniqueCourseTest, CohortTestMixin):
""" """
Tests for cohort management on the LMS Instructor Dashboard Tests for cohort management on the LMS Instructor Dashboard
......
...@@ -87,7 +87,7 @@ class AccountSettingsTestMixin(EventsTestMixin, WebAppTest): ...@@ -87,7 +87,7 @@ class AccountSettingsTestMixin(EventsTestMixin, WebAppTest):
self.assert_no_matching_events_were_emitted({'event_type': self.USER_SETTINGS_CHANGED_EVENT_NAME}) self.assert_no_matching_events_were_emitted({'event_type': self.USER_SETTINGS_CHANGED_EVENT_NAME})
@attr('shard_5') @attr('shard_8')
class DashboardMenuTest(AccountSettingsTestMixin, WebAppTest): class DashboardMenuTest(AccountSettingsTestMixin, WebAppTest):
""" """
Tests that the dashboard menu works correctly with the account settings page. Tests that the dashboard menu works correctly with the account settings page.
...@@ -110,7 +110,7 @@ class DashboardMenuTest(AccountSettingsTestMixin, WebAppTest): ...@@ -110,7 +110,7 @@ class DashboardMenuTest(AccountSettingsTestMixin, WebAppTest):
dashboard_page.click_account_settings_link() dashboard_page.click_account_settings_link()
@attr('shard_5') @attr('shard_8')
class AccountSettingsPageTest(AccountSettingsTestMixin, WebAppTest): class AccountSettingsPageTest(AccountSettingsTestMixin, WebAppTest):
""" """
Tests that verify behaviour of the Account Settings page. Tests that verify behaviour of the Account Settings page.
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
End-to-end tests for the courseware unit bookmarks. End-to-end tests for the courseware unit bookmarks.
""" """
import json import json
from nose.plugins.attrib import attr
import requests import requests
from ...pages.studio.auto_auth import AutoAuthPage as StudioAutoAuthPage from ...pages.studio.auto_auth import AutoAuthPage as StudioAutoAuthPage
from ...pages.lms.auto_auth import AutoAuthPage as LmsAutoAuthPage from ...pages.lms.auto_auth import AutoAuthPage as LmsAutoAuthPage
...@@ -59,6 +60,7 @@ class BookmarksTestMixin(EventsTestMixin, UniqueCourseTest): ...@@ -59,6 +60,7 @@ class BookmarksTestMixin(EventsTestMixin, UniqueCourseTest):
self.assert_events_match(event_data, actual_events) self.assert_events_match(event_data, actual_events)
@attr('shard_8')
class BookmarksTest(BookmarksTestMixin): class BookmarksTest(BookmarksTestMixin):
""" """
Tests to verify bookmarks functionality. Tests to verify bookmarks functionality.
......
...@@ -21,7 +21,7 @@ SUBSECTION_NAME = 'Test Subsection' ...@@ -21,7 +21,7 @@ SUBSECTION_NAME = 'Test Subsection'
UNIT_NAME = 'Test Unit' UNIT_NAME = 'Test Unit'
@attr('shard_3') @attr('shard_7')
class LibraryContentTestBase(UniqueCourseTest): class LibraryContentTestBase(UniqueCourseTest):
""" Base class for library content block tests """ """ Base class for library content block tests """
USERNAME = "STUDENT_TESTER" USERNAME = "STUDENT_TESTER"
...@@ -144,7 +144,7 @@ class LibraryContentTestBase(UniqueCourseTest): ...@@ -144,7 +144,7 @@ class LibraryContentTestBase(UniqueCourseTest):
@ddt.ddt @ddt.ddt
@attr('shard_3') @attr('shard_7')
class LibraryContentTest(LibraryContentTestBase): class LibraryContentTest(LibraryContentTestBase):
""" """
Test courseware. Test courseware.
...@@ -197,7 +197,7 @@ class LibraryContentTest(LibraryContentTestBase): ...@@ -197,7 +197,7 @@ class LibraryContentTest(LibraryContentTestBase):
@ddt.ddt @ddt.ddt
@attr('shard_3') @attr('shard_7')
class StudioLibraryContainerCapaFilterTest(LibraryContentTestBase, TestWithSearchIndexMixin): class StudioLibraryContainerCapaFilterTest(LibraryContentTestBase, TestWithSearchIndexMixin):
""" """
Test Library Content block in LMS Test Library Content block in LMS
......
...@@ -39,7 +39,7 @@ from ...pages.lms.course_wiki import CourseWikiPage, CourseWikiEditPage ...@@ -39,7 +39,7 @@ from ...pages.lms.course_wiki import CourseWikiPage, CourseWikiEditPage
from ...fixtures.course import CourseFixture, XBlockFixtureDesc, CourseUpdateDesc from ...fixtures.course import CourseFixture, XBlockFixtureDesc, CourseUpdateDesc
@attr('shard_4') @attr('shard_8')
class ForgotPasswordPageTest(UniqueCourseTest): class ForgotPasswordPageTest(UniqueCourseTest):
""" """
Test that forgot password forms is rendered if url contains 'forgot-password-modal' Test that forgot password forms is rendered if url contains 'forgot-password-modal'
...@@ -59,7 +59,7 @@ class ForgotPasswordPageTest(UniqueCourseTest): ...@@ -59,7 +59,7 @@ class ForgotPasswordPageTest(UniqueCourseTest):
self.assertTrue(self.reset_password_page.is_form_visible()) self.assertTrue(self.reset_password_page.is_form_visible())
@attr('shard_4') @attr('shard_8')
class LoginFromCombinedPageTest(UniqueCourseTest): class LoginFromCombinedPageTest(UniqueCourseTest):
"""Test that we can log in using the combined login/registration page. """Test that we can log in using the combined login/registration page.
...@@ -229,7 +229,7 @@ class LoginFromCombinedPageTest(UniqueCourseTest): ...@@ -229,7 +229,7 @@ class LoginFromCombinedPageTest(UniqueCourseTest):
return (email, password) return (email, password)
@attr('shard_4') @attr('shard_8')
class RegisterFromCombinedPageTest(UniqueCourseTest): class RegisterFromCombinedPageTest(UniqueCourseTest):
"""Test that we can register a new user from the combined login/registration page. """ """Test that we can register a new user from the combined login/registration page. """
...@@ -344,7 +344,7 @@ class RegisterFromCombinedPageTest(UniqueCourseTest): ...@@ -344,7 +344,7 @@ class RegisterFromCombinedPageTest(UniqueCourseTest):
account_settings.wait_for_message(field_id, "Successfully unlinked") account_settings.wait_for_message(field_id, "Successfully unlinked")
@attr('shard_4') @attr('shard_8')
class PayAndVerifyTest(EventsTestMixin, UniqueCourseTest): class PayAndVerifyTest(EventsTestMixin, UniqueCourseTest):
"""Test that we can proceed through the payment and verification flow.""" """Test that we can proceed through the payment and verification flow."""
def setUp(self): def setUp(self):
...@@ -694,6 +694,7 @@ class HighLevelTabTest(UniqueCourseTest): ...@@ -694,6 +694,7 @@ class HighLevelTabTest(UniqueCourseTest):
self.assertIn(expected, actual_items) self.assertIn(expected, actual_items)
@attr('shard_1')
class PDFTextBooksTabTest(UniqueCourseTest): class PDFTextBooksTabTest(UniqueCourseTest):
""" """
Tests that verify each of the textbook tabs available within a course. Tests that verify each of the textbook tabs available within a course.
......
...@@ -46,7 +46,7 @@ class BaseInstructorDashboardTest(EventsTestMixin, UniqueCourseTest): ...@@ -46,7 +46,7 @@ class BaseInstructorDashboardTest(EventsTestMixin, UniqueCourseTest):
return instructor_dashboard_page return instructor_dashboard_page
@attr('shard_1') @attr('shard_7')
class AutoEnrollmentWithCSVTest(BaseInstructorDashboardTest): class AutoEnrollmentWithCSVTest(BaseInstructorDashboardTest):
""" """
End-to-end tests for Auto-Registration and enrollment functionality via CSV file. End-to-end tests for Auto-Registration and enrollment functionality via CSV file.
...@@ -119,7 +119,7 @@ class AutoEnrollmentWithCSVTest(BaseInstructorDashboardTest): ...@@ -119,7 +119,7 @@ class AutoEnrollmentWithCSVTest(BaseInstructorDashboardTest):
self.assertEqual(self.auto_enroll_section.first_notification_message(section_type=self.auto_enroll_section.NOTIFICATION_ERROR), "Make sure that the file you upload is in CSV format with no extraneous characters or rows.") self.assertEqual(self.auto_enroll_section.first_notification_message(section_type=self.auto_enroll_section.NOTIFICATION_ERROR), "Make sure that the file you upload is in CSV format with no extraneous characters or rows.")
@attr('shard_1') @attr('shard_7')
class ProctoredExamsTest(BaseInstructorDashboardTest): class ProctoredExamsTest(BaseInstructorDashboardTest):
""" """
End-to-end tests for Proctoring Sections of the Instructor Dashboard. End-to-end tests for Proctoring Sections of the Instructor Dashboard.
...@@ -296,7 +296,7 @@ class ProctoredExamsTest(BaseInstructorDashboardTest): ...@@ -296,7 +296,7 @@ class ProctoredExamsTest(BaseInstructorDashboardTest):
self.assertFalse(exam_attempts_section.is_student_attempt_visible) self.assertFalse(exam_attempts_section.is_student_attempt_visible)
@attr('shard_1') @attr('shard_7')
class EntranceExamGradeTest(BaseInstructorDashboardTest): class EntranceExamGradeTest(BaseInstructorDashboardTest):
""" """
Tests for Entrance exam specific student grading tasks. Tests for Entrance exam specific student grading tasks.
...@@ -495,6 +495,7 @@ class EntranceExamGradeTest(BaseInstructorDashboardTest): ...@@ -495,6 +495,7 @@ class EntranceExamGradeTest(BaseInstructorDashboardTest):
self.assertTrue(self.student_admin_section.is_background_task_history_table_visible()) self.assertTrue(self.student_admin_section.is_background_task_history_table_visible())
@attr('shard_7')
class DataDownloadsTest(BaseInstructorDashboardTest): class DataDownloadsTest(BaseInstructorDashboardTest):
""" """
Bok Choy tests for the "Data Downloads" tab. Bok Choy tests for the "Data Downloads" tab.
...@@ -588,7 +589,7 @@ class DataDownloadsTest(BaseInstructorDashboardTest): ...@@ -588,7 +589,7 @@ class DataDownloadsTest(BaseInstructorDashboardTest):
self.verify_report_download(report_name) self.verify_report_download(report_name)
@attr('shard_1') @attr('shard_7')
class CertificatesTest(BaseInstructorDashboardTest): class CertificatesTest(BaseInstructorDashboardTest):
""" """
Tests for Certificates functionality on instructor dashboard. Tests for Certificates functionality on instructor dashboard.
...@@ -845,7 +846,7 @@ class CertificatesTest(BaseInstructorDashboardTest): ...@@ -845,7 +846,7 @@ class CertificatesTest(BaseInstructorDashboardTest):
) )
@attr('shard_1') @attr('shard_7')
class CertificateInvalidationTest(BaseInstructorDashboardTest): class CertificateInvalidationTest(BaseInstructorDashboardTest):
""" """
Tests for Certificates functionality on instructor dashboard. Tests for Certificates functionality on instructor dashboard.
......
...@@ -135,7 +135,7 @@ class ProblemTypeTestMixin(object): ...@@ -135,7 +135,7 @@ class ProblemTypeTestMixin(object):
""" """
Test cases shared amongst problem types. Test cases shared amongst problem types.
""" """
@attr('shard_2') @attr('shard_7')
def test_answer_correctly(self): def test_answer_correctly(self):
""" """
Scenario: I can answer a problem correctly Scenario: I can answer a problem correctly
...@@ -171,7 +171,7 @@ class ProblemTypeTestMixin(object): ...@@ -171,7 +171,7 @@ class ProblemTypeTestMixin(object):
for event in expected_events: for event in expected_events:
self.wait_for_events(event_filter=event, number_of_matches=1) self.wait_for_events(event_filter=event, number_of_matches=1)
@attr('shard_2') @attr('shard_7')
def test_answer_incorrectly(self): def test_answer_incorrectly(self):
""" """
Scenario: I can answer a problem incorrectly Scenario: I can answer a problem incorrectly
...@@ -191,7 +191,7 @@ class ProblemTypeTestMixin(object): ...@@ -191,7 +191,7 @@ class ProblemTypeTestMixin(object):
self.problem_page.click_check() self.problem_page.click_check()
self.wait_for_status('incorrect') self.wait_for_status('incorrect')
@attr('shard_2') @attr('shard_7')
def test_submit_blank_answer(self): def test_submit_blank_answer(self):
""" """
Scenario: I can submit a blank answer Scenario: I can submit a blank answer
......
...@@ -34,7 +34,7 @@ class ExportTestMixin(object): ...@@ -34,7 +34,7 @@ class ExportTestMixin(object):
self.assertTrue(is_tarball_mimetype) self.assertTrue(is_tarball_mimetype)
@attr('shard_4') @attr('shard_7')
class TestCourseExport(ExportTestMixin, StudioCourseTest): class TestCourseExport(ExportTestMixin, StudioCourseTest):
""" """
Export tests for courses. Export tests for courses.
...@@ -57,7 +57,7 @@ class TestCourseExport(ExportTestMixin, StudioCourseTest): ...@@ -57,7 +57,7 @@ class TestCourseExport(ExportTestMixin, StudioCourseTest):
self.assertEqual(self.export_page.header_text, 'Course Export') self.assertEqual(self.export_page.header_text, 'Course Export')
@attr('shard_4') @attr('shard_7')
class TestLibraryExport(ExportTestMixin, StudioLibraryTest): class TestLibraryExport(ExportTestMixin, StudioLibraryTest):
""" """
Export tests for libraries. Export tests for libraries.
...@@ -106,7 +106,7 @@ class BadExportMixin(object): ...@@ -106,7 +106,7 @@ class BadExportMixin(object):
) )
@attr('shard_4') @attr('shard_7')
class TestLibraryBadExport(BadExportMixin, StudioLibraryTest): class TestLibraryBadExport(BadExportMixin, StudioLibraryTest):
""" """
Verify exporting a bad library causes an error. Verify exporting a bad library causes an error.
...@@ -130,7 +130,7 @@ class TestLibraryBadExport(BadExportMixin, StudioLibraryTest): ...@@ -130,7 +130,7 @@ class TestLibraryBadExport(BadExportMixin, StudioLibraryTest):
) )
@attr('shard_4') @attr('shard_7')
class TestCourseBadExport(BadExportMixin, StudioCourseTest): class TestCourseBadExport(BadExportMixin, StudioCourseTest):
""" """
Verify exporting a bad course causes an error. Verify exporting a bad course causes an error.
...@@ -162,7 +162,7 @@ class TestCourseBadExport(BadExportMixin, StudioCourseTest): ...@@ -162,7 +162,7 @@ class TestCourseBadExport(BadExportMixin, StudioCourseTest):
) )
@attr('shard_4') @attr('shard_7')
class ImportTestMixin(object): class ImportTestMixin(object):
""" """
Tests to run for both course and library import pages. Tests to run for both course and library import pages.
...@@ -277,7 +277,7 @@ class ImportTestMixin(object): ...@@ -277,7 +277,7 @@ class ImportTestMixin(object):
self.import_page.wait_for_tasks(fail_on='Updating') self.import_page.wait_for_tasks(fail_on='Updating')
@attr('shard_4') @attr('shard_7')
class TestEntranceExamCourseImport(ImportTestMixin, StudioCourseTest): class TestEntranceExamCourseImport(ImportTestMixin, StudioCourseTest):
""" """
Tests the Course import page Tests the Course import page
...@@ -323,7 +323,7 @@ class TestEntranceExamCourseImport(ImportTestMixin, StudioCourseTest): ...@@ -323,7 +323,7 @@ class TestEntranceExamCourseImport(ImportTestMixin, StudioCourseTest):
) )
@attr('shard_4') @attr('shard_7')
class TestCourseImport(ImportTestMixin, StudioCourseTest): class TestCourseImport(ImportTestMixin, StudioCourseTest):
""" """
Tests the Course import page Tests the Course import page
...@@ -393,7 +393,7 @@ class TestCourseImport(ImportTestMixin, StudioCourseTest): ...@@ -393,7 +393,7 @@ class TestCourseImport(ImportTestMixin, StudioCourseTest):
self.assertFalse(self.import_page.is_timestamp_visible()) self.assertFalse(self.import_page.is_timestamp_visible())
@attr('shard_4') @attr('shard_7')
class TestLibraryImport(ImportTestMixin, StudioLibraryTest): class TestLibraryImport(ImportTestMixin, StudioLibraryTest):
""" """
Tests the Library import page Tests the Library import page
......
...@@ -3,12 +3,14 @@ Acceptance tests for course creation. ...@@ -3,12 +3,14 @@ Acceptance tests for course creation.
""" """
import uuid import uuid
from bok_choy.web_app_test import WebAppTest from bok_choy.web_app_test import WebAppTest
from nose.plugins.attrib import attr
from ...pages.studio.auto_auth import AutoAuthPage from ...pages.studio.auto_auth import AutoAuthPage
from ...pages.studio.index import DashboardPage from ...pages.studio.index import DashboardPage
from ...pages.studio.overview import CourseOutlinePage from ...pages.studio.overview import CourseOutlinePage
@attr('shard_8')
class CreateCourseTest(WebAppTest): class CreateCourseTest(WebAppTest):
""" """
Test that we can create a new course the studio home page. Test that we can create a new course the studio home page.
......
...@@ -18,6 +18,7 @@ from textwrap import dedent ...@@ -18,6 +18,7 @@ from textwrap import dedent
from xmodule.partitions.partitions import Group from xmodule.partitions.partitions import Group
@attr('shard_8')
class ContentGroupConfigurationTest(StudioCourseTest): class ContentGroupConfigurationTest(StudioCourseTest):
""" """
Tests for content groups in the Group Configurations Page. Tests for content groups in the Group Configurations Page.
...@@ -229,6 +230,7 @@ class ContentGroupConfigurationTest(StudioCourseTest): ...@@ -229,6 +230,7 @@ class ContentGroupConfigurationTest(StudioCourseTest):
).fulfill() ).fulfill()
@attr('shard_8')
class AdvancedSettingsValidationTest(StudioCourseTest): class AdvancedSettingsValidationTest(StudioCourseTest):
""" """
Tests for validation feature in Studio's advanced settings tab Tests for validation feature in Studio's advanced settings tab
......
...@@ -4,12 +4,15 @@ Acceptance tests for Studio's Setting pages ...@@ -4,12 +4,15 @@ Acceptance tests for Studio's Setting pages
import re import re
import uuid import uuid
from nose.plugins.attrib import attr
from .base_studio_test import StudioCourseTest from .base_studio_test import StudioCourseTest
from ...pages.lms.create_mode import ModeCreationPage from ...pages.lms.create_mode import ModeCreationPage
from ...pages.studio.settings_certificates import CertificatesPage from ...pages.studio.settings_certificates import CertificatesPage
from ...pages.studio.settings_advanced import AdvancedSettingsPage from ...pages.studio.settings_advanced import AdvancedSettingsPage
@attr('shard_8')
class CertificatesTest(StudioCourseTest): class CertificatesTest(StudioCourseTest):
""" """
Tests for settings/certificates Page. Tests for settings/certificates Page.
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
import datetime import datetime
import json import json
from nose.plugins.attrib import attr
import ddt import ddt
import unittest import unittest
...@@ -149,6 +150,7 @@ class VideoEventsTest(VideoEventsTestMixin): ...@@ -149,6 +150,7 @@ class VideoEventsTest(VideoEventsTestMixin):
assert_events_equal(static_fields_pattern, load_video_event) assert_events_equal(static_fields_pattern, load_video_event)
@attr('shard_8')
@ddt.ddt @ddt.ddt
class VideoBumperEventsTest(VideoEventsTestMixin): class VideoBumperEventsTest(VideoEventsTestMixin):
""" Test bumper video event emission """ """ Test bumper video event emission """
......
...@@ -173,7 +173,15 @@ END ...@@ -173,7 +173,15 @@ END
;; ;;
"7") "7")
paver test_bokchoy -n $NUMBER_OF_BOKCHOY_THREADS --extra_args="-a shard_1=False,shard_2=False,shard_3=False,shard_4=False,shard_5=False,shard_6=False,a11y=False --with-flaky" paver test_bokchoy -n $NUMBER_OF_BOKCHOY_THREADS --extra_args="-a 'shard_7' --with-flaky"
;;
"8")
paver test_bokchoy -n $NUMBER_OF_BOKCHOY_THREADS --extra_args="-a 'shard_8' --with-flaky"
;;
"9")
paver test_bokchoy -n $NUMBER_OF_BOKCHOY_THREADS --extra_args="-a shard_1=False,shard_2=False,shard_3=False,shard_4=False,shard_5=False,shard_6=False,shard_7=False,shard_8=False,a11y=False --with-flaky"
;; ;;
# Default case because if we later define another bok-choy shard on Jenkins # Default case because if we later define another bok-choy shard on Jenkins
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment