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